Назначение каталогов 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.