在 CentOS 上使用 Apache(httpd) 设置虚拟主机(VirtualHost),一般包括以下步骤。以 CentOS 7/8 为例(Apache 2.4)。
yum install httpd -y
# 或
dnf install httpd -y
systemctl start httpd
systemctl enable httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
假设有两个站点:
www.site1.com → /var/www/site1www.site2.com → /var/www/site2mkdir -p /var/www/site1
mkdir -p /var/www/site2
echo "site1" > /var/www/site1/index.html
echo "site2" > /var/www/site2/index.html
Apache 虚拟主机配置一般放在:
/etc/httpd/conf.d/
创建文件:
vi /etc/httpd/conf.d/site1.conf
内容:
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /var/www/site1
<Directory /var/www/site1>
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/site1_error.log
CustomLog /var/log/httpd/site1_access.log combined
</VirtualHost>
同理创建 site2.conf。
修改本地 hosts 文件(Windows / Linux 客户端):
192.168.1.100 www.site1.com
192.168.1.100 www.site2.com
httpd -t
systemctl restart httpd
浏览器访问:
http://www.site1.com
http://www.site2.com
例如 8080 端口:
Listen 8080
<VirtualHost *:8080>
DocumentRoot /var/www/site2
ServerName www.site2.com
</VirtualHost>
记得开放端口:
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
如果页面 403:
setenforce 0 # 临时关闭
# 或
setsebool -P httpd_read_user_content 1
如果你需要 HTTPS(SSL)虚拟主机 或 CentOS Stream / Rocky / Alma 的写法,也可以告诉我。