温馨提示×

centos apache配置要注意啥

小樊
46
2026-09-15 01:44:55
栏目: 智能运维

在 CentOS 上配置 Apache(通常是 httpd 服务)时,有几个常见但容易踩坑的点。下面按「安装 → 配置 → 权限 → 安全 → 排错」给你梳理一下。


一、安装与基础

1. 安装 Apache

yum install httpd -y
# 或 CentOS 8+
dnf install httpd -y

2. 启动与开机自启

systemctl start httpd
systemctl enable httpd

⚠️ 注意:

  • CentOS 7+ 一定要用 systemctl
  • 不要手动 httpd start(容易和环境变量冲突)

二、防火墙(非常关键)

CentOS 默认开启了 firewalld,不放开端口是访问不到的。

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

如果是云服务器,还要在安全组放行 80 / 443。


三、SELinux(最容易坑人)

CentOS 默认开启 SELinux,这是 Apache 配置失败的高频原因。

常见现象

  • 403 Forbidden
  • 日志里出现 Permission denied

排查

getenforce

解决方式(推荐不是关闭)

# 修改网站目录上下文
semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"
restorecon -Rv /data/www

⚠️ 不建议直接 setenforce 0 或禁用 SELinux(生产环境)


四、网站目录与权限

1. 默认目录

/var/www/html

2. 权限注意

chown -R apache:apache /var/www/html
chmod 755 /var/www/html

⚠️ Apache 用户是 apache,不是 www-data(那是 Ubuntu)


五、虚拟主机配置

示例(推荐方式)

vi /etc/httpd/conf.d/www.example.com.conf
<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/html/example

    <Directory /var/www/html/example>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

然后:

systemctl restart httpd

六、.htaccess 与 Rewrite

如果你用框架(Laravel / WordPress):

AllowOverride All

否则 rewrite 不生效。


七、HTTPS(建议直接上)

yum install mod_ssl -y

证书推荐:

  • Let’s Encrypt(certbot)
yum install certbot python2-certbot-apache
certbot --apache

八、日志排查(非常重要)

tail -f /var/log/httpd/error_log
tail -f /var/log/httpd/access_log

80% 的问题看 error_log 就能解决。


九、常见坑总结

✅ 防火墙没开
✅ SELinux 拦了
✅ 目录权限不对
✅ 配置文件放错位置
✅ 改完没重启 httpd
✅ 云服务器安全组没放行


如果你有具体场景(比如:单站点 / 多站点 / PHP / 反向代理 / CentOS 几),我可以给你更针对性的配置示例。

0