Apache Virtual Hosts auf CentOS 7 oder Ubuntu 16.04 hinzufügen
Erfahren Sie, wie Sie einen virtuellen Host zu einem Apache-Webserver hinzufügen. Mit virtuellen Hosts können Sie mehrere separate Websites auf demselben Server hosten, mit einem separaten Satz von Verzeichnissen für jede Website.
Apache ist ein beliebter und leistungsfähiger Webserver für Linux-Plattformen und wird standardmäßig auf Cloud Servers mit CentOS 7 und Ubuntu 14.04 installiert und ausgeführt. Sie können so viele virtuelle Hosts zu Apache hinzufügen, wie Ihr Server verarbeiten kann, basierend auf dem Traffic auf allen Websites, die von diesem Server gehostet werden.
Für jeden Cloud Server mit Plesk sollten virtuelle Hosts immer über die Plesk-Schnittstelle hinzugefügt und verwaltet werden. In unserem Artikel Virtuellen Host auf einem Plesk-Server hinzufügen finden Sie eine Schritt-für-Schritt-Anleitung.
Anforderungen
- Ein Cloud Server mit CentOS 7 oder Ubuntu 16.04.
- Apache Webserver installiert und läuft.
Dank Startguthaben testen Sie Cloud Server bei IONOS 1 Monat lang kostenlos (oder bis das Guthaben verbraucht ist) und erleben die perfekte Kombination aus Leistung und Sicherheit!
Um den Status des Apache auf Ihrem Server zu überprüfen, verwenden Sie den Befehl:
- CentOS 7: sudo systemctl status httpd
- Ubuntu 16.04: sudo systemctl Status apache2
Wenn der Apache installiert ist und läuft, sehen Sie eine Ausgabe ähnlich wie bei:
user@localhost:~# systemctl status apache2
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Mon 2016-11-28 22:18:46 UTC; 1 weeks 1 days ago
Docs: man:systemd-sysv-generator(8)
Process: 2893 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 50598 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
Process: 2916 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/apache2.service
├─ 2934 /usr/sbin/apache2 -k start
├─50628 /usr/sbin/apache2 -k start
├─50629 /usr/sbin/apache2 -k start
├─50630 /usr/sbin/apache2 -k start
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Beachten Sie die Zeile, die lautet:
Active: active (running) since Mon 2016-11-28 22:18:46 UTC; 1 weeks 1 days ago
Das bedeutet, dass der Server installiert ist und läuft.
Apache neu starten
Wann immer Sie Änderungen an den Apache-Konfigurationsdateien vornehmen, müssen Sie den Apache neu starten, damit die Änderungen wirksam werden:
- CentOS 7: sudo systemctl restart httpd
- Ubuntu 16.04: sudo systemctl restart apache2
Jeder Apache-Webserver hat eine Standard-Site. Wenn Sie keine Dateien zur Standardsite hinzugefügt haben, ist dies die Standard "Apache Default Page".
Eines der häufigsten Symptome eines Apache-Problems ist, dass alle URLs auf dem Server auf diese Standardsite verweisen. Dies kann passieren, wenn ein Fehler in den Konfigurationen vorliegt oder wenn der Apache nur neu gestartet werden muss.
Erstellen der Verzeichnisstruktur
Es ist wichtig, zuerst die Verzeichnisse zu erstellen. Wenn der Apache Verzeichnisse erwartet und sie nicht finden kann, kann dies zu einem Ausfall des Apache-Webservers führen, wie im vorherigen Abschnitt beschrieben.
Obwohl Sie die Verzeichnisse überall erstellen können, befinden sich die Verzeichnisse für jede Website nach gängiger Konvention im Verzeichnis /var/www und beginnen mit einem Verzeichnis, das nach der URL der Website benannt ist.
Um die Verzeichnisse für beispiel.com zu erstellen, lauten die Befehle:
sudo mkdir /var/www/example.com
sudo mkdir /var/www/example.com/html
Im Verzeichnis /var/www/example.com/html werden die Webseiten Ihrer Website platziert. Dieses Verzeichnis wird als "document root" bezeichnet.
Ändern Sie anschließend den Besitzer dieser Verzeichnisse auf den Apache-Benutzer.
- CentOS 7: sudo chown -R apache:apache /var/www/example.com
- Ubuntu 16.04: sudo chown -R www-data:www-data /var/www/example.com
Um Website-Dateien per FTP hochladen zu können, muss das html-Verzeichnis dem FTP-Benutzer gehören.
Wenn sich Ihr Benutzer beispielsweise per FTP mit dem Benutzernamen jdoe anmeldet, lautet der Befehl zum Ändern des Eigentümers in jdoe:
- CentOS 7: sudo chown jdoe:jdoe /var/www/example.com/html
- Ubuntu 16.04: sudo chown jdoe:jdoe /var/www/example.com/html
Hinzufügen einer Indexdatei
Erstellen Sie eine Testdatei mit dem Namen index.html im Hauptverzeichnis der Website:
sudo nano /var/www/example.com/html/index.html
Fügen Sie den folgenden Inhalt in die Datei ein:
<html>
<head>
<title>Welcome to your new website!</title>
</head>
<body>
<p>Hello, your virtual host is set up correctly.</p>
</body>
</html>
Speichern und schließen Sie die Datei.
Erstellen der Apache-Konfigurationsdatei
Die Apache-Konfigurationsdatei enthält alle Anweisungen für Ihren virtuellen Host. Es gibt viele Konfigurationen, die Sie in diese Datei einfügen können, je nach Ihren spezifischen Bedürfnissen. Zuerst erstellen wir eine einfache Datei mit nur den Grundkonfigurationen:
- CentOS 7: sudo nano /etc/httpd/conf.d/example.com.conf
- Ubuntu 16.04: sudo nano /etc/apache2/sites-available/example.com.conf
Fügen Sie den folgenden Inhalt in diese Datei ein:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
</VirtualHost>
Speichern und beenden Sie die Datei.
Nur Ubuntu 16.04: Erstellen Sie einen Symlink zu dieser Datei mit dem Befehl sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/example.com.conf
Starten Sie den Apache neu, damit die Änderungen wirksam werden:
- CentOS 7: sudo systemctl restart httpd
- Ubuntu 16.04: sudo systemctl restart apache2
Sobald der Apache den Neustart abgeschlossen hat, besuchen Sie die Website in einem Browser. Sie sehen die Beispiel-Indexseite.