Cel katalogów debian „dostępne strony” i „dostępne strony”

60

Czy ktoś może mi powiedzieć - w skrócie - jaki jest cel tych dwóch katalogów w Debianie?

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

Zauważam, że różni się sites-available/000-defaulti sites-enabled/defaultpokazuje, że są identyczne.

Co daje?

aaaidan
źródło

Odpowiedzi:

63

Witryny dostępne są zawiera pliki konfiguracyjne apache dla każdej witryny. Na przykład:

<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>

Jeśli chcesz dodać nową witrynę (na przykład site.mysite.com), dodaj ją tutaj i użyj:

a2ensite site.mysite.com

Aby włączyć witrynę. Po włączeniu witryny dowiązanie symboliczne do pliku konfiguracyjnego jest umieszczane w katalogu obsługującym witryny, co oznacza, że ​​witryna jest włączona.

Jason Leveille
źródło
12
Jeśli chcesz wyłączyć witrynę, uruchom a2dissite site.mysite.com
2
a2ensitei a2dissiteznajdują się w /usr/sbinktórych obecnie nie ma domyślnej ścieżki użytkownika, więc uzupełnianie kart nie będzie działać. Podczas pisania sudo a2i wciskania klawisza Tab będziesz jednak oferował zarówno, jak a2ensitei a2dissite.
Stefan Schmidt
22

Ważniejsze niż mechanika systemu jest uzasadnienie ...

Debian udostępnia dwa oddzielne katalogi, dzięki czemu jeśli automatycznie zarządzasz konfiguracjami Apache, możesz po prostu wpakować wszystkie hosty vhost sites-availablena wszystkie twoje maszyny, a następnie włączyć poszczególne hosty vhost na serwerze, który faktycznie je obsłuży. Oznacza to również, że możesz niemal natychmiast wyłączyć witrynę, jeśli powoduje ona problemy ( a2dissite example.com; /etc/init.d/apache2 reload).

womble
źródło
1
To jest prawdziwa odpowiedź na oryginalne pytanie.
silpol
5

Aby dodać do powyższych, plik w sites-enabledjest dowiązaniem symbolicznym do sites-availablepliku:

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

To nie tylko ta sama treść, to ten sam rzeczywisty plik!

JakeGould
źródło
5

Ważna informacja:

Pliki należy edytować tylko w sites-availablekatalogu.

Nigdy nie edytuj plików w sites-enabledkatalogu, w przeciwnym razie możesz mieć problemy, jeśli w edytorze zabraknie pamięci lub z jakiegokolwiek powodu otrzyma SIGHUP lub SIGTERM.

Na przykład: jeśli używasz nanodo edycji pliku sites-enabled/defaulti zabraknie mu pamięci lub z jakiegokolwiek powodu otrzyma SIGHUP lub SIGTERM, wówczas nanoutworzy plik awaryjny o nazwie default.save, wewnątrz sites-enabledkatalogu. W sites-enabledkatalogu będzie dodatkowy plik . Uniemożliwi to uruchomienie Apache lub NGINX. Jeśli Twoja witryna działała, już nie będzie. Będzie Ci ciężko, dopóki nie znajdziesz w logach czegoś związanego z default.saveplikiem, a następnie go usuniesz.

W powyższym przykładzie, jeśli edytujesz plik w sites-availablekatalogu, nic złego by się nie stało. Plik sites-available/default.savezostałby utworzony, ale nie wyrządziłby żadnej szkody w sites-availablekatalogu.

Vini
źródło
Bardzo interesujące! Czy ktoś inny może to potwierdzić?
aaaidan
Oto przykład kogoś, kto miał ten problem: stackoverflow.com/questions/36808705/…
Vini
Coś podobnego wydarzyło się w poniższym linku. Zobacz komentarz Melvyn w Answeer na temat edytowania plików w witrynach. stackoverflow.com/questions/26210115/…
Vini