Fedora Server下Httpd虚拟主机配置:'sites-available与sites-enabled'对比'conf.d/vhost.conf'
Fedora Server下Httpd虚拟主机配置:'sites-available与sites-enabled'对比'conf.d/vhost.conf'
嗨,我来帮你理清这个Httpd虚拟主机配置的困惑~ 先给你拆解两种方式的来龙去脉,再说说最佳实践:
两种配置方式的核心区别
1. sites-available/sites-enabled模式
这个模式其实是借鉴了Debian/Ubuntu系Apache的管理习惯,Linode的CentOS指南用的就是这套逻辑:
- 把每个域名的虚拟主机配置单独存放在
/etc/httpd/sites-available/目录下,比如example.com.conf - 通过创建软链的方式,把需要启用的配置文件链接到
/etc/httpd/sites-enabled/目录,命令大概是:ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/ - 注意!Fedora默认的Httpd主配置(
/etc/httpd/conf/httpd.conf)里没有自动包含sites-enabled目录,你得手动加一行IncludeOptional sites-enabled/*.conf,否则Httpd根本不会加载这里的配置,这也是新手容易踩坑的点。
2. conf.d/vhost.conf模式
这是RHEL/Fedora系Httpd的原生默认玩法:
- 默认情况下,Httpd主配置里已经有
IncludeOptional conf.d/*.conf这一行,所以放在/etc/httpd/conf.d/下的所有.conf文件都会被自动加载 - 你可以把所有虚拟主机配置写在一个
vhost.conf里,也可以给每个域名单独建一个example.com.conf,怎么方便怎么来,本质没有区别
最佳实践&你的疑问解答
- 选哪种? 两种方式都是合规的,没有绝对的对错:
- 如果是新手,优先推荐
conf.d模式,因为默认就生效,不用改主配置,省心不踩坑 - 如果后期域名多了,想快速启用/禁用某一个站点,
sites-available/sites-enabled会更方便——只要删除软链就禁用站点,重新创建就启用,不用动配置文件本身
- 如果是新手,优先推荐
- 需要同时配置吗? 绝对不要!同时在两个地方放同一个域名的虚拟主机配置,会导致Httpd加载重复配置,大概率会报错或者站点异常
- 搭LAMP必须用vhost.conf吗? 完全不需要!LAMP的核心是Linux+Apache+MySQL/MariaDB+PHP,和虚拟主机配置的存放位置毫无关系,不管你用哪种方式,只要Httpd能正确加载虚拟主机配置,PHP和数据库的配置该怎么弄就怎么弄
- 两种方式可以互换吗? 当然可以!你可以随时把sites-available里的配置移到conf.d下,或者反过来,只要保证Httpd能加载到对应的配置文件就行
小提示
如果已经用了sites-available模式,一定要去检查/etc/httpd/conf/httpd.conf里有没有包含sites-enabled的配置,要是没有加上那行,你的虚拟主机肯定不会生效哦~
备注:内容来源于stack exchange,提问作者CatByte-io
相关产品推荐
相关产品推荐

