Apache lädt keine virtuellen Hostdateien

Apache lädt keine virtuellen Hostdateien

Ich versuche, einen Apache2-Server einzurichten, aber ich schaffe es nicht, meine virtuellen Hosts zu laden. Oder genauer gesagt, es funktioniert einwandfrei, solange ich sie einschreibe 000-default.conf, aber wenn ich versuche, eine separate Datei zu verwenden, scheint es, als würde es diese komplett ignorieren.

Warum funktioniert das nicht? Und wie kann ich es zum Laufen bringen?

Antwort1

Wenn Sie separate virtuelle Hostkonfigurationen einrichten möchten, platzieren Sie diese normalerweise in diesem Verzeichnis:

/etc/apache2/sites-available/

Wenn Sie also einen virtuellen Host mit dem Namen haben, www.example.comkann die Konfigurationsdatei www.example.com.conffolgendermaßen lauten:

/etc/apache2/sites-available/www.example.com.conf

Öffnen Sie die Datei dann in einem Texteditor wie diesem. Ich verwende dies nanoals Beispiel, Sie können aber auch jeden anderen Texteditor verwenden:

sudo nano /etc/apache2/sites-available/www.example.com.conf

Und platzieren Sie dann Inhalte ähnlich diesem in www.example.com.conf:

<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Schließen und speichern Sie die Datei und verwenden Sie sie dann a2ensitewie folgt, damit das System einen symbolischen Link von hier sites-availablenach sites-enabledhier einrichtet:

sudo a2ensite www.example.com.conf

Oder – wenn Sie möchten – können Sie manuell ln -seinen symbolischen Link wie folgt festlegen:

ln -s /etc/apache2/sites-available/www.example.com.conf /etc/apache2/sites-enabled/www.example.com.conf

Wenn das erledigt ist, laden Sie Apache einfach wie folgt neu:

sudo service apache2 reload

Und wenn es aus irgendeinem Grund reloadnicht funktioniert, erzwingen Sie einfach einen Neustart wie folgt:

sudo service apache2 restart

Der Vorteil der Verwendung von reloadbefore restartbesteht darin, dass Apache bei einem Tippfehler in einer Konfigurationsdatei einen Fehler meldet, die Konfigurationsdateien jedoch nicht lädt. Das bedeutet, dass Ihr Apache-Webserver basierend auf der zuletzt geladenen stabilen Konfigurationsdatei weiterhin betriebsbereit ist.

Das Risiko besteht darin, dass restartApache nicht mehr funktioniert, wenn Sie ein erzwingen und in einer Konfigurationsdatei ein Tippfehler vorliegt, da restartein vollständiger Dienst stopgefolgt von einem erzwungen wird start. Und wenn dies startzum Absturz führt, ist der Server nicht mehr funktionsfähig, bis der Tippfehler/das Konfigurationsproblem behoben ist.

Antwort2

Überprüfen Sie Ihre httpd.confDatei. Sie sollte eine Zeile wie enthalten Include conf/*.conf. Überprüfen Sie, ob es sich um einen Platzhalter oder eine feste Datei (wie 000-default.conf) handelt.

Überprüfen Sie außerdem, ob Ihre neuen Konfigurationsdateien mit dem Platzhaltermuster übereinstimmen und im selben Ordner wie die gespeichert sind 000-default.conf.

Schließlich gibt es Apache-Distributionen, bei denen eine verfügbare und eine aktive Conf-Datei vorhanden ist. In einigen Fällen ist daher ein Softlink erforderlich, damit es funktioniert.

verwandte Informationen