下面按常见场景给你一份 CentOS 上配置 Apache(httpd)的实用指南,适用于 CentOS 7 / 8 / Stream(部分命令略有差异我会标注)。
yum install httpd -y
dnf install httpd -y
systemctl start httpd
systemctl enable httpd
查看状态:
systemctl status httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
浏览器访问:
http://服务器IP
看到 Testing 123… 页面即成功。
/var/www/html
写个测试页:
echo "Hello Apache" > /var/www/html/index.html
mkdir -p /var/www/example.com
echo "example.com" > /var/www/example.com/index.html
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>
</VirtualHost>
systemctl restart httpd
在虚拟主机或全局配置中:
AllowOverride All
| 文件 | 说明 |
|---|---|
| /etc/httpd/conf/httpd.conf | 主配置文件 |
| /etc/httpd/conf.d/ | 额外配置 |
| /var/log/httpd/ | 日志目录 |
如果页面打不开但配置没问题:
setsebool -P httpd_can_network_connect 1
或修改目录安全上下文:
semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
restorecon -Rv /var/www/example.com
# 查看错误日志
tail -f /var/log/httpd/error_log
# 检查配置语法
httpd -t
如果你愿意,可以告诉我:
我可以给你更针对性的配置示例。