温馨提示×

centos apache怎么设置虚拟主机

小樊
38
2026-09-02 22:22:20
栏目: 云计算

CentOS 上使用 Apache(httpd) 设置虚拟主机(VirtualHost),一般包括以下步骤。以 CentOS 7/8 为例(Apache 2.4)。


一、前提条件

  1. 已安装 Apache
yum install httpd -y
# 或
dnf install httpd -y
  1. 启动并设置开机自启
systemctl start httpd
systemctl enable httpd
  1. 关闭或配置防火墙(如需要)
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

二、基于域名的虚拟主机示例

假设有两个站点:

  • www.site1.com/var/www/site1
  • www.site2.com/var/www/site2

1. 创建网站目录

mkdir -p /var/www/site1
mkdir -p /var/www/site2

echo "site1" > /var/www/site1/index.html
echo "site2" > /var/www/site2/index.html

2. 创建虚拟主机配置文件

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

四、检查并重启 Apache

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

六、SELinux 注意事项(CentOS 常见坑)

如果页面 403:

setenforce 0   # 临时关闭
# 或
setsebool -P httpd_read_user_content 1

如果你需要 HTTPS(SSL)虚拟主机CentOS Stream / Rocky / Alma 的写法,也可以告诉我。

0