Debian“sites-available”和“sites-enabled”目录的用途?

Debian“sites-available”和“sites-enabled”目录的用途?

谁能简单地告诉我这两个目录在 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.savesites-enabledsites-enableddefault.save

在上面的例子中,如果你正在编辑目录内的文件sites-available,那么不会发生任何不好的事情。文件sites-available/default.save会被创建,但不会对sites-available目录内造成任何损害。

答案4

除上述内容外,文件中sites-enabled还有指向该文件的符号链接sites-available

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

这不仅仅是相同的内容,而是相同的实际文件!

相关内容