Zweck von Debian-Verzeichnissen "sites-available" und "sites-enabled"

60

Kann mir jemand - auf den Punkt gebracht - sagen, wozu diese beiden Verzeichnisse in Debian dienen?

/etc/apache2/sites-enabled
/etc/apache2/sites-available

Ich bemerke, dass Unterschiede sites-available/000-defaultund sites-enabled/defaultShows identisch sind.

Was gibt?

aaaidan
quelle

Antworten:

63

sites-available enthält die Apache-Konfigurationsdateien für jede Ihrer Sites. Zum Beispiel:

<VirtualHost *:80>
  ServerName site.mysite.com
  ServerAdmin [email protected]

  DirectoryIndex index.php
  DocumentRoot /home/user/public_html/site.mysite.com/public

  LogLevel warn
  ErrorLog /home/user/public_html/site.mysite.com/logs/error.log
  CustomLog /home/user/public_html/site.mysite.com/logs/access.log combined
</VirtualHost>

Wenn Sie eine neue Site hinzufügen möchten (zum Beispiel site.mysite.com), fügen Sie sie hier hinzu und verwenden:

a2ensite site.mysite.com

So aktivieren Sie die Site Sobald die Site aktiviert ist, wird ein Symlink zur Konfigurationsdatei in das sites-enabled-Verzeichnis gestellt, um anzuzeigen, dass die Site aktiviert ist.

Jason Leveille
quelle
12
Wenn Sie eine Site deaktivieren möchten, führen Sie a2dissite site.mysite.com
2
a2ensiteund a2dissitebefinden sich in, /usr/sbindie derzeit nicht im Standardbenutzerpfad enthalten sind, sodass das Ausfüllen von Registerkarten nicht funktioniert. Bei der Eingabe sudo a2und Drücken der Tabulatortaste aber Sie werden beide angeboten werden a2ensiteund a2dissite.
Stefan Schmidt
22

Wichtiger als die Mechanik des Systems ist die Begründung ...

Debian stellt die beiden separaten Verzeichnisse zur Verfügung, so dass Sie, wenn Sie Ihre Apache-Konfigurationen automatisch verwalten, einfach alle vhosts sites-availableauf Ihren Rechnern ablegen und dann einzelne vhosts auf dem Server aktivieren können, der sie tatsächlich bereitstellt. Dies bedeutet auch, dass Sie eine Site nahezu sofort deaktivieren können, wenn sie Probleme verursacht ( a2dissite example.com; /etc/init.d/apache2 reload).

womble
quelle
1
Dies ist die wahre Antwort auf die ursprüngliche Frage.
Silpol
5

Um diese oben hinzuzufügen, ist die Datei in sites-enabledein Symlink zu der sites-availableDatei:

ls -l /etc/apache2/sites-enabled/

Es ist nicht nur der gleiche Inhalt, es ist die gleiche Datei!

JakeGould
quelle
5

Wichtige Informationen:

Sie sollten Dateien nur im sites-availableVerzeichnis bearbeiten .

Bearbeiten Sie niemals Dateien innerhalb des sites-enabledVerzeichnisses, da Sie sonst Probleme haben können, wenn Ihr Editor nicht genügend Arbeitsspeicher hat oder aus irgendeinem Grund ein SIGHUP oder SIGTERM erhält.

Beispiel: Wenn Sie nanozum Bearbeiten der Datei verwenden sites-enabled/defaultund nicht genügend Arbeitsspeicher vorhanden ist oder aus irgendeinem Grund ein SIGHUP oder SIGTERM empfangen nanowird default.save, wird im sites-enabledVerzeichnis eine Notfalldatei mit dem Namen erstellt . Es wird also eine zusätzliche Datei im sites-enabledVerzeichnis geben. Dadurch wird verhindert, dass Apache oder NGINX gestartet werden. Wenn Ihre Site funktioniert hat, ist sie nicht mehr verfügbar. Sie werden es schwer haben, bis Sie in den Protokollen etwas im Zusammenhang mit der default.saveDatei herausfinden und sie dann entfernen.

Im obigen Beispiel sites-availablewäre nichts Schlimmes passiert , wenn Sie die Datei im Verzeichnis bearbeitet hätten. Die Datei sites-available/default.savewäre erstellt worden, würde aber im sites-availableVerzeichnis keinen Schaden anrichten .

Vini
quelle
Sehr interessant! Kann das noch jemand bestätigen?
aaaidan
Hier ist ein Beispiel für jemanden, der dieses Problem hatte: stackoverflow.com/questions/36808705/…
Vini
Ähnliches ist im folgenden Link passiert. Weitere Informationen zum Bearbeiten von Dateien in sites-enabled finden Sie unter Melvyn-Kommentar im Beantworter. stackoverflow.com/questions/26210115/…
Vini