Назначение каталогов Debian «сайты-доступны» и «сайты-включены»


60

Кто-нибудь может мне сказать - в двух словах - какова цель этих двух каталогов в Debian?

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

Я замечаю, что различаются sites-available/000-defaultи sites-enabled/defaultпоказывают, что они идентичны.

Что дает?

Ответы:


63

sites-available содержит конфигурационные файлы apache для каждого из ваших сайтов. Например:

<VirtualHost *:80>
  ServerName site.mysite.com
  ServerAdmin my@email.com

  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>

Если вы хотите добавить новый сайт (например, site.mysite.com), вы добавляете его здесь и используете:

a2ensite site.mysite.com

Чтобы включить сайт. Как только сайт включен, в каталоге сайтов включена символическая ссылка на файл конфигурации, указывающая, что сайт включен.


12
Если вы хотите отключить сайт, вы должны запустить a2dissite site.mysite.com

2
a2ensiteи a2dissiteрасположены там, /usr/sbinгде в настоящее время нет пути пользователя по умолчанию, поэтому завершение вкладки не будет работать. Однако при вводе sudo a2и нажатии клавиши табуляции вам будут предложены a2ensiteи a2dissite.
— Стефан Шмидт

22

Более важным, чем механика системы является обоснование ...

Debian предоставляет два отдельных каталога, так что если вы автоматически управляете своими конфигурациями Apache, вы можете просто sites-availableвключить все vhosts на все ваши машины, а затем на сервере, который будет их обслуживать, можно включить отдельные vhosts. Это также означает, что вы можете практически мгновенно отключить сайт, если он вызывает проблемы ( a2dissite example.com; /etc/init.d/apache2 reload).


1
Это верный ответ на оригинальный вопрос.
— Silpol

5

Чтобы добавить к этому, файл в sites-enabledявляется символической ссылкой на sites-availableфайл:

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

Это не просто тот же контент, это тот же самый файл!


5

Важная информация:

Вы должны редактировать файлы только в sites-availableкаталоге.

Никогда не редактируйте файлы внутри sites-enabledкаталога, иначе у вас могут возникнуть проблемы, если вашему редактору не хватает памяти или по какой-либо причине он получает SIGHUP или SIGTERM.

Например: если вы используете nanoдля редактирования файла sites-enabled/defaultи ему не хватает памяти или по какой-либо причине он получает SIGHUP или SIGTERM, то nanoсоздаст аварийный файл с именем default.saveвнутри sites-enabledкаталога. Итак, внутри sites-enabledкаталога будет дополнительный файл . Это предотвратит запуск Apache или NGINX. Если ваш сайт работал, его больше не будет. Вам будет трудно, пока вы не найдете в журналах что-то, связанное с default.saveфайлом, а затем удалите его.

В приведенном выше примере, если вы редактируете файл внутри sites-availableкаталога, ничего плохого не произошло бы. Файл sites-available/default.saveбыл бы создан, но он не принесет никакого вреда внутри sites-availableкаталога.


Очень интересно! Кто-нибудь еще может это подтвердить?
— 17

Вот пример кого-то, у кого была эта проблема: stackoverflow.com/questions/36808705/…
— Vini

Нечто подобное произошло по следующей ссылке. См. Комментарий Мелвина в автоответчике о редактировании файлов на сайтах с включенной поддержкой. stackoverflow.com/questions/26210115/…
— Vini
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.