Debian“可用站点”和“启用站点”目录的目的


60

简而言之,谁能告诉我这两个目录在Debian中的用途是什么?

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

我注意到这种差异,sites-available/000-defaultsites-enabled/default表明它们是相同的。

是什么赋予了?

Answers:


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并按Tab键时,将同时提供a2ensitea2dissite
Stefan Schmidt

22

基本原理比系统机制更重要。

Debian提供了两个单独的目录,因此,如果您要自动管理Apache配置,则可以将所有虚拟主机放入sites-available所有计算机中,然后可以在实际为它们提供服务的服务器上启用单个虚拟主机。这还意味着,如果一个站点引起问题(a2dissite example.com; /etc/init.d/apache2 reload),您几乎可以立即将其禁用。


1
这是对原始问题的真实答案。
silpol 2014年

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创建一个名为的紧急文件。因此,目录内将有一个额外的文件。这将阻止Apache或NGINX启动。如果您的网站正在运行,它将不再可用。直到在日志中找到与该文件相关的内容然后将其删除为止,您将很难。default.savesites-enabledsites-enableddefault.save

在上面的示例中,如果您正在编辑sites-available目录中的文件,则不会发生任何不良情况。该文件sites-available/default.save将被创建,但不会对sites-available目录内部造成任何损害。


很有意思!有人可以确认吗?
aaaidan

这是有此问题的人的示例:stackoverflow.com/questions/36808705/…–
Vini

以下链接中发生了类似的情况。请参阅答案中的Melvyn评论,有关在启用站点的站点中编辑文件。stackoverflow.com/questions/26210115/…–
Vini
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.