温馨提示×

centos apache2怎样设虚拟主机

小樊
45
2026-09-21 06:14:40
栏目: 云计算

CentOS 上,Web 服务器通常是 Apache(httpd),而不是 apache2apache2 是 Debian/Ubuntu 的叫法)。下面以 CentOS 7/8 + Apache(httpd) 为例,说明如何配置虚拟主机(VirtualHost)


一、确认 Apache 已安装并运行

# 安装
yum install httpd -y        # CentOS 7
dnf install httpd -y        # CentOS 8

# 启动并设置开机自启
systemctl start httpd
systemctl enable httpd

# 查看状态
systemctl status httpd

二、关闭默认欢迎页(可选)

mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak

三、创建网站目录

例如两个站点:

  • www.a.com/var/www/a
  • www.b.com/var/www/b
mkdir -p /var/www/a
mkdir -p /var/www/b

echo "A Site" > /var/www/a/index.html
echo "B Site" > /var/www/b/index.html

四、创建虚拟主机配置文件

方式一(推荐):单独配置文件

vim /etc/httpd/conf.d/vhost.conf

内容示例:

<VirtualHost *:80>
    ServerName www.a.com
    DocumentRoot /var/www/a
    <Directory /var/www/a>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName www.b.com
    DocumentRoot /var/www/b
    <Directory /var/www/b>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

五、检查配置并重启 Apache

# 检查语法
httpd -t

# 重启
systemctl restart httpd

六、本地测试(无 DNS 时)

修改 hosts 文件(Windows / Linux / macOS)

192.168.1.100 www.a.com
192.168.1.100 www.b.com

浏览器访问:

http://www.a.com
http://www.b.com

七、常见问题

1. 防火墙未放行 80 端口

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

2. SELinux 导致 403

setsebool -P httpd_can_network_connect 1
chcon -R -t httpd_sys_content_t /var/www

3. 使用 HTTPS(可选)

  • 安装 mod_ssl
yum install mod_ssl
  • 配置 *:443 的 VirtualHost

如果你用的是 CentOS Stream / Rocky / Alma 或需要 HTTPS + 多域名,可以继续问我。

0