你提到的 apache2 其实是 Debian/Ubuntu 的叫法,在 CentOS 里对应的服务叫 httpd。下面按「常见报错 → 排查思路 → 解决方法」来说明。
systemctl status httpd
或老版本:
service httpd status
启动命令:
systemctl start httpd
tail -n 50 /var/log/httpd/error_log
httpd -t # 检查配置文件语法
httpd -X # 前台运行(调试用)
报错类似:
(98)Address already in use: AH00072: make_sock: could not bind to address
解决:
netstat -lntp | grep :80
杀掉占用进程或改端口:
vi /etc/httpd/conf/httpd.conf
Listen 8080
报错:
Syntax error on line xx of /etc/httpd/conf/httpd.conf
解决:
httpd -t
根据提示修正对应行。
报错:
Permission denied: AH00035
解决:
getenforce
临时关闭:
setenforce 0
永久允许 httpd:
setsebool -P httpd_read_user_content 1
setsebool -P httpd_can_network_connect 1
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
报错:
AH01276: Permission denied
解决:
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
systemctl status php-fpm
常见解决:
yum install php php-cli php-common
systemctl restart php-fpm
| Ubuntu | CentOS |
|---|---|
| apache2 | httpd |
| /etc/apache2 | /etc/httpd |
| a2enmod | 手动 LoadModule |
如果你还解决不了,直接贴:
systemctl status httpd
tail -n 30 /var/log/httpd/error_log
我可以逐行帮你分析。