温馨提示×

CentOS怎么配置Apache

小樊
51
2026-07-08 17:16:24
栏目: 智能运维

CentOS 上配置 Apache(httpd) 一般分为以下几个步骤。下面以 CentOS 7 / 8 / Stream 为例说明(适用于大多数情况)。


一、安装 Apache

1. 更新系统

sudo yum update -y

2. 安装 Apache

sudo yum install httpd -y

CentOS 8 / Stream 可能使用 dnf

sudo dnf install httpd -y

二、启动并设置开机自启

sudo systemctl start httpd
sudo systemctl enable httpd

查看状态:

sudo systemctl status httpd

三、配置防火墙(非常重要)

1. 开放 HTTP / HTTPS 端口

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

2. 如果是云服务器

还需要在 安全组 / 防火墙规则 中放行 80 / 443 端口


四、测试 Apache 是否成功

浏览器访问:

http://服务器IP

看到 Apache 测试页面 即成功。


五、Apache 主要配置文件说明

文件 / 目录 说明
/etc/httpd/conf/httpd.conf 主配置文件
/etc/httpd/conf.d/ 额外配置文件
/var/www/html/ 默认网站根目录
/var/log/httpd/ 日志目录

六、修改默认网站目录(示例)

1. 创建新目录

sudo mkdir -p /data/www
sudo chown -R apache:apache /data/www

2. 修改配置文件

编辑:

sudo vi /etc/httpd/conf/httpd.conf

找到:

DocumentRoot "/var/www/html"
<Directory "/var/www/html">

改为:

DocumentRoot "/data/www"
<Directory "/data/www">
    AllowOverride All
    Require all granted
</Directory>

3. 重启 Apache

sudo systemctl restart httpd

七、配置虚拟主机(多网站)

示例:配置一个站点

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

内容:

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

    <Directory /data/www>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/example-error.log
    CustomLog /var/log/httpd/example-access.log combined
</VirtualHost>

重启:

sudo systemctl restart httpd

八、启用伪静态(URL Rewrite)

sudo vi /etc/httpd/conf.modules.d/00-base.conf

确保包含:

LoadModule rewrite_module modules/mod_rewrite.so

或在 .htaccess 中使用:

RewriteEngine On

九、常见问题排查

1. 403 Forbidden

  • 目录权限不对
  • SELinux 未放行

临时关闭 SELinux 测试:

sudo setenforce 0

永久关闭(不推荐):

sudo vi /etc/selinux/config
SELINUX=disabled

2. 查看错误日志

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

十、总结(快速命令)

yum install httpd -y
systemctl start httpd
systemctl enable httpd
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

如果你需要:

  • CentOS 6
  • Apache + PHP
  • Apache + HTTPS(SSL)
  • Apache + 多站点
  • 生产环境优化

可以直接告诉我你的 CentOS 版本和使用场景,我可以给你更精确的配置方案。

0