在 CentOS 上配置 Apache(httpd) 一般分为以下几个步骤。下面以 CentOS 7 / 8 / Stream 为例说明(适用于大多数情况)。
sudo yum update -y
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
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
还需要在 安全组 / 防火墙规则 中放行 80 / 443 端口。
浏览器访问:
http://服务器IP
看到 Apache 测试页面 即成功。
| 文件 / 目录 | 说明 |
|---|---|
/etc/httpd/conf/httpd.conf |
主配置文件 |
/etc/httpd/conf.d/ |
额外配置文件 |
/var/www/html/ |
默认网站根目录 |
/var/log/httpd/ |
日志目录 |
sudo mkdir -p /data/www
sudo chown -R apache:apache /data/www
编辑:
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>
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
sudo vi /etc/httpd/conf.modules.d/00-base.conf
确保包含:
LoadModule rewrite_module modules/mod_rewrite.so
或在 .htaccess 中使用:
RewriteEngine On
临时关闭 SELinux 测试:
sudo setenforce 0
永久关闭(不推荐):
sudo vi /etc/selinux/config
SELINUX=disabled
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 版本和使用场景,我可以给你更精确的配置方案。