其实很多人觉得 CentOS 配 Apache 难,并不是 Apache 本身难,而是 CentOS 的系统环境和习惯跟“直觉”不太一样。常见原因主要有这些:
CentOS 7 以后用的是 systemd:
systemctl start httpd
systemctl enable httpd
但很多人还是用老命令:
service httpd start
或者以为 Apache 叫 apache,其实是 httpd,名字不一样就容易懵。
CentOS 默认使用 firewalld:
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
如果没放行 80 / 443 端口,Apache 启动了也访问不了,很多人会误以为“配置错了”。
这是 CentOS 最难的一点。
比如:
/var/www/html都会直接 403 或拒绝访问,而且日志还不直观。
常见操作:
setenforce 0 # 临时关闭(不推荐生产)
或者正确配置:
semanage fcontext ...
restorecon ...
Apache 默认用户是:
apache
如果你用 root 建文件,Apache 可能读不了,就会出现 403。
CentOS 的 Apache 配置在:
/etc/httpd/
而不是 Ubuntu 的:
/etc/apache2/
而且:
/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/很多人按 Ubuntu 教程来,直接迷路。
网上很多教程是:
照着做基本必翻车。
CentOS 配 Apache 不难,难的是:systemd + firewalld + SELinux 三件套。
如果你愿意,我可以:
你现在是卡在哪一步了?