温馨提示×

centos怎样配置apache

小樊
59
2026-08-03 22:18:45
栏目: 智能运维

在 CentOS 上配置 Apache(httpd)可以分为 安装、启动、目录配置、虚拟主机、防火墙/SELinux、常见优化 几个部分。下面以 CentOS 7 / 8 为例说明(CentOS 6 已过时,不再推荐)。


一、安装 Apache(httpd)

1️⃣ 安装

# CentOS 7
yum install -y httpd

# CentOS 8(或 CentOS Stream)
dnf install -y httpd

查看版本:

httpd -v

二、启动并设置开机自启

systemctl start httpd
systemctl enable httpd
systemctl status httpd

三、防火墙配置(必须)

1️⃣ 开放 HTTP / HTTPS 端口

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

2️⃣ 验证

firewall-cmd --list-all

四、SELinux 配置(非常重要)

1️⃣ 查看状态

getenforce
  • Enforcing:需要配置
  • Permissive:可暂时忽略
  • Disabled:不推荐

2️⃣ 允许 Apache 访问网站目录

setsebool -P httpd_read_user_content 1
setsebool -P httpd_enable_homedirs 1

如果你使用非默认目录(如 /data/www),需要:

semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"
restorecon -Rv /data/www

五、Apache 目录与配置文件说明

主要目录

作用 路径
主配置文件 /etc/httpd/conf/httpd.conf
虚拟主机配置 /etc/httpd/conf.d/*.conf
默认网站目录 /var/www/html
日志 /var/log/httpd/

六、修改默认网站

1️⃣ 创建测试页面

echo "Hello CentOS Apache" > /var/www/html/index.html

浏览器访问:

http://服务器IP

七、配置虚拟主机(推荐)

1️⃣ 创建网站目录

mkdir -p /var/www/example.com
echo "example.com" > /var/www/example.com/index.html

2️⃣ 创建虚拟主机配置

vi /etc/httpd/conf.d/example.conf

内容示例:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com

    <Directory /var/www/example.com>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/example_error.log
    CustomLog /var/log/httpd/example_access.log combined
</VirtualHost>

3️⃣ 重启 Apache

systemctl restart httpd

八、启用伪静态(.htaccess)

确保:

AllowOverride All

并加载模块(默认已加载):

httpd -M | grep rewrite

九、常见优化(可选)

1️⃣ 关闭目录浏览

Options -Indexes

2️⃣ 开启 gzip(mod_deflate)

LoadModule deflate_module modules/mod_deflate.so

十、常见问题排查

403 Forbidden

  • 权限问题
  • SELinux 未放行
  • Require all granted 未配置

网站打不开

systemctl status httpd
journalctl -xe
cat /var/log/httpd/error_log

总结流程

安装 httpd
启动并设置开机自启
配置防火墙
处理 SELinux
配置虚拟主机
重启 httpd

如果你需要:

  • CentOS 8 + PHP + Apache
  • HTTPS(Let’s Encrypt)
  • 多站点配置
  • 生产环境安全加固

可以直接告诉我你的 CentOS 版本和使用场景,我可以给你一套完整配置方案。

0