在 CentOS 上“Apache2”通常指的是 Apache HTTP Server(httpd)。下面是从安装到基本配置的完整步骤(以 CentOS 7/8/Stream 为例)。
sudo yum update -y
(CentOS 8 / Stream 可用 dnf)
sudo yum 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
浏览器访问:
http://服务器IP
看到 Apache Test Page 即成功。
| 作用 | 路径 |
|---|---|
| 主配置文件 | /etc/httpd/conf/httpd.conf |
| 虚拟主机配置 | /etc/httpd/conf.d/ |
| 网站根目录 | /var/www/html |
| 日志 | /var/log/httpd/ |
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R apache:apache /var/www/example.com
sudo vi /etc/httpd/conf.d/example.com.conf
内容示例:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
sudo systemctl restart httpd
sudo yum install php php-cli php-common -y
sudo systemctl restart httpd
测试:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问 http://IP/info.php
DocumentRoot 权限SELinuxsudo setsebool -P httpd_read_user_content 1
sudo apachectl configtest
sudo systemctl restart httpd
如果你用的是 CentOS 9 / Rocky / AlmaLinux 或需要 HTTPS(Let’s Encrypt) 配置,也可以继续问我。