Fedora 35系统httpd本地服务器修改站点根目录报Error 503问题求助
503 Service Unavailable(运行用户设为muq时)的原因排查
- 首先验证Apache配置合法性,执行
apachectl configtest确认配置无语法错误 - 检查Apache运行所需系统目录权限:Apache默认需要向
/run/httpd、/var/log/httpd、/var/lib/httpd等目录写入数据,这些目录默认所有者为apache:apache,你将运行用户改为muq后,muq无对应目录的写入权限,会导致进程启动失败或无法处理请求,触发503。如果坚持使用muq作为运行用户,需要执行以下命令修改对应目录所有者:
chown -R muq:muq /run/httpd /var/log/httpd /var/lib/httpd
注:修改Apache运行用户为普通用户会带来安全风险,更推荐使用默认的apache用户,参考下面403问题的修复方案
403 Forbidden(运行用户为默认apache时)的原因排查
这个问题是Fedora和Debian系(PopOS属于Debian系)的系统差异导致,主要包含两类原因:
1. 文件系统权限不足
默认用户家目录/home/muq的权限为700,仅所有者muq可访问,apache用户无法进入家目录读取下级的Localhost目录内容,需执行以下命令调整权限:
# 给家目录增加其他用户的执行权限(仅允许进入目录,不可读写内容) chmod o+x /home/muq # 给站点目录统一设置权限,保证apache可读可进入 chmod -R 755 /home/muq/Localhost
2. SELinux安全上下文限制
Fedora默认启用SELinux强制访问控制,PopOS默认关闭该机制,这是你之前同配置可用的核心原因。Apache默认仅可访问带有httpd_sys_content_t安全上下文的目录,你家目录下的Localhost目录默认安全上下文为用户目录类型,Apache无访问权限,需执行以下命令修改:
# 给站点目录添加SELinux上下文规则 semanage fcontext -a -t httpd_sys_content_t "/home/muq/Localhost(/.*)?" # 生效规则 restorecon -Rv /home/muq/Localhost
如果站点需要Apache写入权限(比如上传文件、缓存生成等场景),将上面的httpd_sys_content_t替换为httpd_sys_rw_content_t即可。
最终生效步骤
所有配置调整完成后,执行systemctl restart httpd重启Apache服务即可正常访问。
内容的提问来源于stack exchange,提问作者Muq
相关产品推荐
相关产品推荐

