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.

Hinweis

­ 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.

Free Cloud Server Trial von IONOS

Jetzt Cloud Server kostenlos testen - Probieren Sie Ihren Cloud Server bei IONOS 30 Tage lang aus!

REST API
Unlimited Traffic
VMware Virtualisierung

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
Hinweis

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.