Erfahren Sie, wie Sie einen vir­tu­el­len Host zu einem Apache-Webserver hin­zu­fü­gen. Mit vir­tu­el­len Hosts können Sie mehrere separate Websites auf demselben Server hosten, mit einem separaten Satz von Ver­zeich­nis­sen für jede Website.

Apache ist ein beliebter und leis­tungs­fä­hi­ger Webserver für Linux-Platt­for­men und wird stan­dard­mä­ßig auf Cloud Servers mit CentOS 7 und Ubuntu 14.04 in­stal­liert und aus­ge­führt. Sie können so viele virtuelle Hosts zu Apache hin­zu­fü­gen, wie Ihr Server ver­ar­bei­ten 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-Schnitt­stel­le hin­zu­ge­fügt und verwaltet werden. In unserem Artikel Vir­tu­el­len Host auf einem Plesk-Server hin­zu­fü­gen finden Sie eine Schritt-für-Schritt-Anleitung.

An­for­de­run­gen

  • Ein Cloud Server mit CentOS 7 oder Ubuntu 16.04.
  • Apache Webserver in­stal­liert und läuft.
Free Cloud Server Trial
Virtual Private Server auf En­ter­pri­se-Level
  • KVM-basierte vServer für Ent­wick­ler
  • In­te­griert in die IONOS Compute Engine
  • Ska­lier­bar bis zur En­ter­pri­se-Cloud

Um den Status des Apache auf Ihrem Server zu über­prü­fen, verwenden Sie den Befehl:

  • CentOS 7: sudo systemctl status httpd
  • Ubuntu 16.04: sudo systemctl Status apache2

Wenn der Apache in­stal­liert 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 in­stal­liert ist und läuft.

Apache neu starten

Wann immer Sie Än­de­run­gen an den Apache-Kon­fi­gu­ra­ti­ons­da­tei­en vornehmen, müssen Sie den Apache neu starten, damit die Än­de­run­gen 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 Stan­dard­si­te hin­zu­ge­fügt haben, ist dies die Standard "Apache Default Page".

Eines der häu­figs­ten Symptome eines Apache-Problems ist, dass alle URLs auf dem Server auf diese Stan­dard­si­te verweisen. Dies kann passieren, wenn ein Fehler in den Kon­fi­gu­ra­tio­nen vorliegt oder wenn der Apache nur neu gestartet werden muss.

Erstellen der Ver­zeich­nis­struk­tur

Es ist wichtig, zuerst die Ver­zeich­nis­se zu erstellen. Wenn der Apache Ver­zeich­nis­se erwartet und sie nicht finden kann, kann dies zu einem Ausfall des Apache-Web­ser­vers führen, wie im vor­he­ri­gen Abschnitt be­schrie­ben.

Obwohl Sie die Ver­zeich­nis­se überall erstellen können, befinden sich die Ver­zeich­nis­se für jede Website nach gängiger Kon­ven­ti­on im Ver­zeich­nis /var/www und beginnen mit einem Ver­zeich­nis, das nach der URL der Website benannt ist.

Um die Ver­zeich­nis­se für beispiel.com zu erstellen, lauten die Befehle:

sudo mkdir /var/www/example.com
sudo mkdir /var/www/example.com/html
Hinweis

Im Ver­zeich­nis /var/www/example.com/html werden die Webseiten Ihrer Website platziert. Dieses Ver­zeich­nis wird als "document root" be­zeich­net.

Ändern Sie an­schlie­ßend den Besitzer dieser Ver­zeich­nis­se 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-Ver­zeich­nis dem FTP-Benutzer gehören.

Wenn sich Ihr Benutzer bei­spiels­wei­se per FTP mit dem Be­nut­zer­na­men jdoe anmeldet, lautet der Befehl zum Ändern des Ei­gen­tü­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

Hin­zu­fü­gen einer In­dex­da­tei

Erstellen Sie eine Testdatei mit dem Namen index.html im Haupt­ver­zeich­nis 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-Kon­fi­gu­ra­ti­ons­da­tei

Die Apache-Kon­fi­gu­ra­ti­ons­da­tei enthält alle An­wei­sun­gen für Ihren vir­tu­el­len Host. Es gibt viele Kon­fi­gu­ra­tio­nen, die Sie in diese Datei einfügen können, je nach Ihren spe­zi­fi­schen Be­dürf­nis­sen. Zuerst erstellen wir eine einfache Datei mit nur den Grund­kon­fi­gu­ra­tio­nen:

  • 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 Än­de­run­gen wirksam werden:

  • CentOS 7: sudo systemctl restart httpd
  • Ubuntu 16.04: sudo systemctl restart apache2

Sobald der Apache den Neustart ab­ge­schlos­sen hat, besuchen Sie die Website in einem Browser. Sie sehen die Beispiel-In­dex­sei­te.

Zum Hauptmenü