我目前正在研究Apache虚拟主机,并且对它们的配置有一些混淆。
我在sites-available文件夹中创建了一个虚拟主机文件,并使用命令a2ensite example.com.conf作为root启用了相应的站点。我注意到当这样做时,这会在sites-enabled文件夹中创建一个符号链接。
为了更彻底地理解这种行为,我尝试将example.com.conf文件直接保存到sites-enabled中,避免通过一个符号链接进行间接操作。重新启动Apache之后,我惊讶地发现虚拟主机继续正常工作。
如果我只将example.com.conf文件存储在sites-enabled中,而不存储在sites-available文件夹中并使用符号链接,这会引起任何问题吗?
发布于 2018-08-31 05:26:27
这个文件夹结构都是关于可管理性的。虽然将所有模块和虚拟主机配置添加到单个httpd.conf中是非常好的,但是修改起来会很长而且很棘手。因此,例如在Debian中,通配符包含被用于将配置分离为多个文件:
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf这使得所有匹配的路径sites-enabled/*.conf都可以添加到配置中,对于Apache HTTPd来说,无论它是文本文件还是指向一个文件的符号链接都无关紧要。从这个角度来看,文件中是否包含<VirtualHost>块,或者仅仅是其他一些Apache配置,都无关紧要。文件example.com.conf也完全有可能配置为example.net等。
非常规配置将面临的问题与缺乏可管理性有关:
a2ensite / a2dissite启用或禁用虚拟主机。# a2dissite example.com错误:站点example.com不存在!ln -s和rm来代替这些官方命令。当尝试暂时禁用站点时,他们可能会意外地删除它。https://serverfault.com/questions/928815
复制相似问题