
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.com
kann die Konfigurationsdatei www.example.com.conf
folgendermaßen lauten:
/etc/apache2/sites-available/www.example.com.conf
Öffnen Sie die Datei dann in einem Texteditor wie diesem. Ich verwende dies nano
als 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 a2ensite
wie folgt, damit das System einen symbolischen Link von hier sites-available
nach sites-enabled
hier einrichtet:
sudo a2ensite www.example.com.conf
Oder – wenn Sie möchten – können Sie manuell ln -s
einen 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 reload
nicht funktioniert, erzwingen Sie einfach einen Neustart wie folgt:
sudo service apache2 restart
Der Vorteil der Verwendung von reload
before restart
besteht 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 restart
Apache nicht mehr funktioniert, wenn Sie ein erzwingen und in einer Konfigurationsdatei ein Tippfehler vorliegt, da restart
ein vollständiger Dienst stop
gefolgt von einem erzwungen wird start
. Und wenn dies start
zum Absturz führt, ist der Server nicht mehr funktionsfähig, bis der Tippfehler/das Konfigurationsproblem behoben ist.
Antwort2
Überprüfen Sie Ihre httpd.conf
Datei. 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.