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 等,因此具有某种结构。
而且你不需要在很多地方做更改。只需更改一个文件。
而且它看起来也很漂亮。
而且我没有看到这种结构有任何缺点,所以为什么不呢?;)