在 Apache 中启用模块/虚拟主机的“正确方法”

在 Apache 中启用模块/虚拟主机的“正确方法”

Debian 系统(也许还有其他系统)在 /etc/apache2/ 中有以下布局

mods-available/   mods-enables/   sites-available/   sites-enabled/

默认设置在 mods-available 和 sites-available 中都有大量文件,并且在 *-enabled/ 中有指向这些文件的符号链接。

我从来没为符号链接烦恼过。我一直只是移动文件。

我认为这样可以让你轻松看到哪些模块/网站已启用,哪些尚未启用。符号链接只能让你看到哪些已启用(无论如何都很容易,无需求助于 diff)。然而,我的同事却持不同看法。

那么,什么是正确的方法?为什么?

答案1

“正确的方法”是使用 a2enmod 和 a2dismod 来启用和禁用模块,使用 a2ensite 和 a2dissite 来启用和禁用站点。

a2*mod 命令会向您显示系统上安装的 [已禁用|已启用] 模块的列表,然后您可以 [启用|禁用]。与 a2*site 命令相同,但它们与 sites-avaliable 目录中的站点配置文件列表(默认可用的文件和您创建的文件)配合使用。

您还可以手动将 *-avaliable 符号链接到 *-enabled,但这些命令已提供并且基本上都是这样做的。

a2enmod 的示例输出:

Your choices are: actions alias asis auth_basic auth_digest authn_alias 
    authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm 
    authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache 
    cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io 
    env expires ext_filter file_cache filter headers ident imagemap include info ldap 
    log_forensic mem_cache mime mime_magic negotiation pagespeed php5 proxy proxy_ajp 
    proxy_balancer proxy_connect proxy_ftp proxy_http proxy_scgi reqtimeout rewrite setenvif 
    speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias
Which module(s) do you want to enable (wildcards ok)?

答案2

我一直都喜欢为虚拟主机帐户创建主目录。这样做有几个好处,比如可以轻松使用 ftp 和 ssh chroot,当然权限也更容易管理。

我认为没有一种“正确”的方法,方法有很多种,每个人都有自己的方法。

有一件事是肯定的。我不喜欢 Debian(或 Ubuntu)Apache 服务器配置虚拟主机的方式。我喜欢 CentOS 安装的 Apache。

您可以在我的生成虚拟主机脚本中查看我的设置(https://github.com/metalmini/vhostusers/blob/master/vhostusers.sh

答案3

列出禁用模块有什么意义吗?当然,相关因素是服务器是否支持某些功能,您可以通过查看它是否在启用列表中来判断。

答案4

始终启用符号链接以发挥作用。

因此,您始终拥有完整列表和当前工作列表。此外,符号链接可能具有名称,如 001-site、Client-id-12-site 等,因此具有某种结构。

而且你不需要在很多地方做更改。只需更改一个文件。

而且它看起来也很漂亮。

而且我没有看到这种结构有任何缺点,所以为什么不呢?;)

相关内容