在 CentOS 上修复 Apache(httpd)通常取决于具体故障现象。下面按最常见的场景给你一套排查与修复流程,你可以对照使用。
rpm -qa | grep httpd
# 或
httpd -v
如果没安装:
yum install httpd -y # CentOS 7
dnf install httpd -y # CentOS 8/Stream
systemctl start httpd
systemctl restart httpd
systemctl enable httpd
查看状态:
systemctl status httpd
journalctl -xe
# 或
systemctl status httpd -l
httpd -t
常见错误示例:
AH00526: Syntax error on line 10 of /etc/httpd/conf.d/xxx.conf
修复方法:
vim /etc/httpd/conf.d/xxx.conf
修改后重新测试:
httpd -t
查看端口占用:
ss -lntp | grep 80
处理方式:
systemctl stop nginx
vim /etc/httpd/conf/httpd.conf
Listen 8080
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
查看状态:
getenforce
如果是 Enforcing:
setenforce 0 # 临时关闭(测试用)
永久关闭(不推荐):
vim /etc/selinux/config
SELINUX=disabled
✅ 正确做法(推荐):
semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
restorecon -Rv /var/www/html
检查防火墙:
firewall-cmd --list-all
放行 HTTP / HTTPS:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
查看加载模块:
httpd -M
PHP 不解析:
yum install php -y
systemctl restart httpd
tail -f /var/log/httpd/error_log
tail -f /var/log/httpd/access_log
httpd -t
systemctl restart httpd
tail -f /var/log/httpd/error_log
firewall-cmd --reload
你可以直接告诉我:
我可以给你精确到命令级别的修复方案。