Erstellen von VirtualHosts für Apache2 per Script

Hallo ihr da draußen! Heute möchte ich euch ein nützliches Script vorstellen, das euch dabei helfen wird, den Apache2 Webserver einzurichten und einen VirtualHost anzulegen. Mit diesem Script könnt ihr eure eigenen Webseiten und Anwendungen unter einer benutzerdefinierten Subdomain betreiben. Klingt das interessant? Lasst uns direkt loslegen!

Hier ist das Script:

#!/bin/bash
# Script Name:  apache2-virtualhost-creator.v1.sh
# Beschreibung: Installiert den Apache2 Webserver 
#               und legt einen VirtualHost an
# Aufruf:       bash ./apache2-virtualhost-creator.v1.sh
# Autor:        Patrick Asmus
# Web:          https://www.media-techport.de
# Git-Reposit.: -
# Version:      1.1.0
# Datum:        13.07.2023
#####################################################

# Variables
SUBDOMAIN_EXT=subdomain.media-techport.de
SUBDOMAIN_INT=subdomain.media-techport.de
EMAIL=email@media-techport.de

# create logfile
mkdir -p /var/log/installer-logs
exec > >(tee -i "/var/log/installer-logs/apache2-virtualhost-creator.v1.log")
exec 2>&1

# Installation + Konfiguration Webserver
sudo apt update
sudo apt install apache2 -y
mkdir -p /var/www/html/$SUBDOMAIN_EXT
sudo chown www-data:www-data /var/www/html/$SUBDOMAIN_EXT -R
sudo touch /etc/apache2/sites-available/$SUBDOMAIN_EXT.conf
cat <<EOF >/etc/apache2/sites-available/$SUBDOMAIN_EXT.conf
<VirtualHost *:80>
  ServerAdmin $EMAIL
  ServerName $SUBDOMAIN_EXT
  ServerAlias $SUBDOMAIN_INT
  DocumentRoot "/var/www/html/$SUBDOMAIN_EXT"

  ErrorLog "/var/log/apache2/$SUBDOMAIN_EXT.error_log"
  TransferLog "/var/log/apache2/$SUBDOMAIN_EXT.access_log"

  <Directory /var/www/html/$SUBDOMAIN_EXT>
    Options +Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
    Require all granted
  </Directory>

</VirtualHost>
EOF

# Konfiguration aktivieren
echo aktiviere vHost Konfiguration
sudo a2ensite $SUBDOMAIN_EXT.conf
echo deaktiviere Standard Konfiguration
sudo a2dissite 000-default.conf
echo starte Apache2 Webservices neu
sudo systemctl reload apache2

exit 0

Jetzt lasst uns besprechen, was ihr tun müsst, um dieses Script nutzen zu können.

Schritt 1: Öffnet einen Texteditor auf eurem Server. Ihr könnt jeden Texteditor eurer Wahl verwenden.

Schritt 2: Kopiert das obige Script und fügt es in den Texteditor ein.

Schritt 3: Passt die Variablen im Script an eure Bedürfnisse an:

  • SUBDOMAIN_EXT: Die externe Subdomain, unter der eure Webseite erreichbar sein soll.
  • SUBDOMAIN_INT: Die interne Subdomain, unter der eure Webseite im internen Netz erreichbar sein soll.
  • EMAIL: Die E-Mail-Adresse des Server-Administrators.

Stellt sicher, dass ihr alle Informationen korrekt eingebt, da dies die Konfiguration eures VirtualHosts beeinflusst.

Schritt 4: Speichert das Script unter einem aussagekräftigen Namen, z.B. “apache2-virtualhost-creator.sh”.

Schritt 5: Öffnet ein Terminalfenster auf eurem Server und navigiert zum Speicherort des Scripts.

Schritt 6: Führt das Script aus, indem ihr den folgenden Befehl ausführt:

bash ./apache2-virtualhost-creator.v1.sh

Das Script wird nun den Apache2 Webserver installieren und konfigurieren, einen VirtualHost mit der angegebenen Subdomain erstellen und die Standardkonfiguration deaktivieren. Der Webserver wird dann neu gestartet, um die Änderungen zu übernehmen.

Euer VirtualHost wurde nun erfolgreich erstellt und eure Webseite oder Anwendung sollte nun unter der Subdomain erreichbar sein.

Herzlichen Glückwunsch! Ihr habt erfolgreich das Script verwendet, um euren eigenen Apache2 VirtualHost einzurichten. Genießt eure neue Webpräsenz und viel Spaß beim Teilen eurer Inhalte mit der Welt!

Wenn ihr weitere Fragen habt oder Unterstützung benötigt, stehe ich euch gerne zur Verfügung.

Prost und viel Erfolg!

Danke fürs Teilen!