You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 07:34:28