Apache virtuelle Hosts anlegen auf Ubuntu 16.04LTS

Kategorie: Linux Server, Web Server
von

Wenn Du einen neuen LAMP Server installiert hast, kommt meistens relativ schnell die Frage auf wie man weitere Webseiten anlegen kann. Dazu musst Du für jede Seite einen neuen virtuellen Host anlegen .. und idealerweise auch gleich die Einträge im DNS Server setzen.

Dazu musst du zuerst die Verzeichnisstruktur schaffen. Ich möchte bei mir gerne im Intranet eine Intranet Seite, eine Monitoring Seite für meinen Monitoring Server und noch eine Zertifikat Webseite. Auf der sollen später let's Encrypt Zertifikate bzw. vor allem ein Wildcard Zertifikat erzeugt und zur Verfügung gestellt werden.

Also brauche ich für den Anfang 3 virtuelle Hosts und möchte diese auch gleich auf die richtigen Subdomains hören lassen.

intranet.just-a-test.de
monitor.just-a-test.de
zertifikat.just.a-test.d

Dazu erstelle ich dann also 3 Verzeichnisse:

sudo mkdir -p /var/www/html/domainname

In diesem Moment haben die noch als Owner den root Benutzer eingetragen. Also müssen wir noch den "normalen User" als Owner eintragen. In meinem Fall ist das der user "intranet"

Jetzt musst Du für jede Seite eine Konfigurationsdatei anlegen. achte bitte darauf, Deine Daten einzusetzen.

sudo pico /etc/apache2/sites-available/intranet.just-a-test.de.conf
sudo pico /etc/apache2/sites-available/monitor.just-a-test.de.conf
sudo pico /etc/apache2/sites-available/zertifikat.just-a-test.de.conf

In alle 3 Dateien musst Du dann die Konfiguration für die jeweilige Domain bzw. den virtuellen Host eintragen. Exemplarisch hier der Code für die "intranet.just-a-test.de" Domain.

<VirtualHost *:80>
    ServerName intranet.just-a-test.de
    ServerAdmin webmaster@just-a-test.de
    DocumentRoot /var/www/html/just-a-test.de
    ErrorLog /var/log/apache2/virtual.host.error.log
    CustomLog /var/log/apache2/virtual.host.access.log combined
    LogLevel warn
</VirtualHost>

Wenn Du die Konfigurationen erzeugt hast, musst Du die Configs noch aktivieren. Dazu gibt es den Befehl a2ensite ... mit diesem Befehl "wandern" dann die Configs aus dem Verzeichnis /etc/apache2/sites-available in den Ordner /etc/apache2/sites-enabled

sudo a2ensite intranet.just-a-test.de.conf

Diesen Befehl musst Du natürlich auch wieder für alle virtuellen Hosts eingeben, die Du aktivieren möchtest, und für die Du eine config erzeugt hast.

Anschließend muss der Apache seine Config neu laden und am besten startest Du ihn gleich kurz neu.

sudo service apache2 reload
sudo service apache2 restart

Wenn Du aus Deinem Netz die Seiten erreichen willst, brauchen die noch einen DNS Eintrag. Da ich mich für die öffentliche Adresse (die externe und nicht die local) entschieden habe, lege ich für die Domains jeweils eine eigene Zone an (Split DNS).

Die Zone wird ohne dynamische Updates als primäre neue Zone angelegt.

Anschließend muss noch ein A Eintrag ohne Namen angelegt werden, der auf die IP des Webservers zeigt.

Im Anschluß funktionieren Deine virtuellen Hosts und sind auch aus dem ganzen Netzwerk unter ihrer Adresse erreichbar

"Glückwunsch zu Deinem neuen Webserver"