Was passiert, wenn ich die Vhost-Konfigurationsdatei direkt in den Ordner „sites-enabled“ einfüge?

Was passiert, wenn ich die Vhost-Konfigurationsdatei direkt in den Ordner „sites-enabled“ einfüge?

Ich studiere derzeit virtuelle Apache-Hosts und bin hinsichtlich ihrer Konfiguration etwas verwirrt.

Ich habe im sites-availableOrdner eine Virtual Host Datei angelegt und die entsprechende Site mit dem Befehl a2ensite example.com.conf als Root aktiviert. Dabei fällt mir auf, dass dadurch ein Symlink im sites-enabledOrdner angelegt wird.

Um das Verhalten besser zu verstehen, habe ich experimentiert, indem ich die example.com.confDatei direkt im gespeichert sites-enabledund die Indirektion über einen symbolischen Link vermieden habe. Nach dem Neustart von Apache stellte ich überrascht fest, dass der virtuelle Host weiterhin einwandfrei funktioniert.

Verursacht es Probleme, wenn ich example.com.confdie Datei nur in speichere sites-enabled, ohne sie in einem Ordner zu speichern und einen symbolischen Link zu verwenden?sites-available

Antwort1

Bei dieser Ordnerstruktur geht es vor allem um die Verwaltbarkeit. Es wäre zwar völlig in Ordnung, alle Modul- und virtuellen Hostkonfigurationen in einer einzigen Datei zusammenzufassen httpd.conf, aber das würde die Datei langwierig und schwierig zu ändern machen. Daher wurden beispielsweise in Debian Platzhalter-Includes verwendet, um die Konfiguration auf mehrere Dateien aufzuteilen:

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Dadurch wird alles, was mit dem Pfad übereinstimmt sites-enabled/*.conf, zur Konfiguration hinzugefügt. Für Apache HTTPd spielt es keine Rolle, ob es sich um eine Textdatei oder einen symbolischen Link zu einer solchen Datei handelt. Aus dieser Perspektive spielt es nicht einmal eine Rolle, ob die Datei Blöcke enthält oder nur eine andere Apache-Konfiguration ist. Es ist auch durchaus möglich, eine Datei mit einer Konfiguration für usw. <VirtualHost>zu haben .example.com.confexample.net

Die Probleme, mit denen Sie bei einer unkonventionellen Konfiguration konfrontiert werden, hängen mit der mangelnden Verwaltbarkeit zusammen:

  • Sie können virtuelle Hosts nicht mit a2ensite/ aktivieren oder deaktivieren a2dissite.

    # a2dissite example.com
    ERROR: Site example.com does not exist!
    
    • Die offizielle Dokumentation (Manpages) wird nutzlos.

    • Sie können die Site nicht einfach vorübergehend deaktivieren. Ein virtueller Catch-All-Host beispielsweise macht es einfach, einenwird gewartetSeite, die angezeigt werden soll, während die Site für Updates deaktiviert ist.

  • ln -sJemand anderes, der denselben Server verwaltet, hat möglicherweise und rmanstelle dieser offiziellen Befehle verwendet . Beim Versuch, die Site vorübergehend zu deaktivieren, könnte er sie versehentlich löschen.

  • Niemand sonst weiß, dass Sie die normalen Vorgehensweisen nicht befolgt haben. In ein paar Monaten werden Sie es auch vergessen. An diesem Punkt werden Sie auf Serverfault eine neue Frage stellen, warum die Befolgung der Dokumentation oder eines Tutorials für Ihr Setup nicht mehr gilt.

verwandte Informationen