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

aaa*_*dan 62 ubuntu debian apache2

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

/etc/apache2/sites-enabled
/etc/apache2/sites-available
Run Code Online (Sandbox Code Playgroud)

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

是什么赋予了?

小智 64

站点可用包含每个站点的 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>
Run Code Online (Sandbox Code Playgroud)

如果要添加新站点(例如,site.mysite.com),请在此处添加,并使用:

a2ensite site.mysite.com
Run Code Online (Sandbox Code Playgroud)

启用站点。站点启用后,指向配置文件的符号链接将放置在 sites-enabled 目录中,表明站点已启用。

  • 如果你想禁用一个站点,你可以运行 a2dissite site.mysite.com (12认同)
  • `a2ensite` 和 `a2dissite` 位于 `/usr/sbin` 中,该路径当前未包含在默认用户路径中,因此选项卡补全将不起作用。然而,当输入 `sudo a2` 并按 Tab 键时,你会同时看到 `a2ensite` 和 `a2dissite`。 (2认同)

wom*_*ble 23

比系统的机制更重要的是基本原理......

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


vin*_*sss 6

重要信息:

您应该sites-available目录中编辑文件。

切勿编辑目录中的文件sites-enabled,否则如果您的编辑器内存不足,或者由于任何原因,它收到 SIGHUP 或 SIGTERM,您可能会遇到问题。

例如:如果您正在使用nano编辑文件sites-enabled/default并且它内存不足,或者由于任何原因,它收到一个 SIGHUP 或 SIGTERM,那么nanodefault.savesites-enabled目录中创建一个名为 的紧急文件。因此,sites-enabled目录中会有一个额外的文件。这将阻止 Apache 或 NGINX 启动。如果您的网站正在运行,它将不再运行。在您在日志中发现与该default.save文件相关的内容并随后将其删除之前,您将很难过。

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


小智 5

要添加到上述内容,文件中的文件sites-enabled是文件的符号链接sites-available

ls -l /etc/apache2/sites-enabled/
Run Code Online (Sandbox Code Playgroud)

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