在 CentOS 上,Web 服务器通常是 Apache(httpd),而不是 apache2(那是 Debian/Ubuntu 的叫法)。下面给你一份CentOS 下 Apache 配置实用指南。
sudo yum install httpd -y
(CentOS 8 可用 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
| 内容 | 路径 |
|---|---|
| 主配置文件 | /etc/httpd/conf/httpd.conf |
| 虚拟主机目录 | /etc/httpd/conf.d/ |
| 网站根目录 | /var/www/html |
| 日志 | /var/log/httpd/ |
编辑主配置:
sudo vi /etc/httpd/conf/httpd.conf
找到:
DocumentRoot "/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 /var/www/example
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/example-error.log
CustomLog /var/log/httpd/example-access.log combined
</VirtualHost>
创建目录:
sudo mkdir -p /var/www/example
echo "Hello CentOS Apache" > /var/www/example/index.html
重启:
sudo systemctl restart httpd
sudo yum install php php-cli php-common -y
sudo systemctl restart httpd
测试:
echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
sudo yum install mod_ssl -y
证书配置示例:
<VirtualHost *:443>
ServerName www.example.com
DocumentRoot /var/www/example
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/example.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.key
</VirtualHost>
解决:
sudo chown -R apache:apache /var/www
sudo setsebool -P httpd_read_user_content 1
sudo apachectl configtest
sudo systemctl restart httpd
如果你愿意,可以告诉我:
我可以直接给你一套完整配置示例。