“Apache 在 CentOS 上报错”是一个比较笼统的问题,因为 Apache(在 CentOS 里通常是 httpd)报错的原因非常多。下面我按常见报错类型 + 排查方法给你一个系统性的说明,你可以对照自己的情况。
报错示例:
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
原因:
排查:
ss -lntp | grep ':80'
解决:
systemctl stop nginx现象:
Permission denied排查:
getenforce
临时关闭测试:
setenforce 0
正式解决:
chcon -R -t httpd_sys_content_t /var/www/html
或修改配置:
setsebool -P httpd_can_network_connect 1
现象:
解决:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
报错示例:
AH00526: Syntax error on line XX of /etc/httpd/conf/httpd.conf
检查语法:
httpd -t
常见错误:
>Apache 默认用户是:
apache
错误示例:
(13)Permission denied: AH00035
解决:
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
报错示例:
Invalid command 'php_value'
解决:
yum install php php-cli mod_php
systemctl restart httpd
请执行以下命令并把输出贴出来:
systemctl status httpd
journalctl -xe | tail -50
httpd -t
你可以告诉我:
我可以直接帮你定位并给出可执行的解决方案。