谁能简单地告诉我这两个目录在 Debian 中的用途是什么?
/etc/apache2/sites-enabled
/etc/apache2/sites-available
我注意到差异sites-available/000-default
显示sites-enabled/default
它们是相同的。
是什么赋予了?
答案1
sites-available 包含每个站点的 apache 配置文件。例如:
<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>
当您想要添加一个新站点(例如,site.mysite.com)时,可以在此处添加,然后使用:
a2ensite site.mysite.com
启用站点。一旦启用站点,指向配置文件的符号链接就会被放置在 sites-enabled 目录中,表明该站点已启用。
答案2
比系统机制更重要的是其原理......
Debian 提供了两个单独的目录,因此如果您自动管理 Apache 配置,则可以将所有 vhost 放入sites-available
所有机器中,然后在实际为它们提供服务的服务器上启用单个 vhost。这还意味着如果某个站点导致问题,您可以几乎立即禁用它(a2dissite example.com; /etc/init.d/apache2 reload
)。
答案3
重要信息:
你应该编辑文件仅有的在sites-available
目录中。
永远不要编辑sites-enabled
目录内的文件,否则,如果编辑器内存不足或由于任何原因收到 SIGHUP 或 SIGTERM,则可能会遇到问题。
例如:如果您正在使用nano
编辑文件sites-enabled/default
,并且它内存不足,或者由于某种原因,它收到 SIGHUP 或 SIGTERM,则将在目录中nano
创建一个名为 的紧急文件。因此,目录中将有一个额外的文件。这将阻止 Apache 或 NGINX 启动。如果您的网站正在运行,它将不再运行。您将很难过,直到您在日志中找出与文件相关的内容,然后将其删除。default.save
sites-enabled
sites-enabled
default.save
在上面的例子中,如果你正在编辑目录内的文件sites-available
,那么不会发生任何不好的事情。文件sites-available/default.save
会被创建,但不会对sites-available
目录内造成任何损害。
答案4
除上述内容外,文件中sites-enabled
还有指向该文件的符号链接sites-available
:
ls -l /etc/apache2/sites-enabled/
这不仅仅是相同的内容,而是相同的实际文件!