温馨提示×

centos apache如何配虚拟

小樊
45
2026-09-24 05:36:12
栏目: 云计算

在 CentOS 上配置 Apache 虚拟主机(基于域名的 VirtualHost)一般步骤如下(以 CentOS 7/8 + Apache/httpd 为例):


一、安装 Apache

yum install httpd -y        # CentOS 7
# 或
dnf install httpd -y        # CentOS 8

启动并设置开机自启:

systemctl start httpd
systemctl enable httpd

二、创建网站目录

例如有两个站点:www.a.com 和 www.b.com

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

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

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

Apache 虚拟主机配置通常放在:

/etc/httpd/conf.d/

1. 配置 a.com

vi /etc/httpd/conf.d/a.conf

内容:

<VirtualHost *:80>
    ServerName www.a.com
    DocumentRoot /var/www/a.com/public_html
    <Directory /var/www/a.com/public_html>
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/httpd/a_error.log
    CustomLog /var/log/httpd/a_access.log combined
</VirtualHost>

2. 配置 b.com

vi /etc/httpd/conf.d/b.conf

内容:

<VirtualHost *:80>
    ServerName www.b.com
    DocumentRoot /var/www/b.com/public_html
    <Directory /var/www/b.com/public_html>
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/httpd/b_error.log
    CustomLog /var/log/httpd/b_access.log combined
</VirtualHost>

四、检查并重启 Apache

httpd -t
systemctl restart httpd

五、本地测试(无 DNS 时)

修改本地 hosts 文件(Windows / Linux 均可):

服务器IP www.a.com
服务器IP www.b.com

浏览器访问:

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

六、防火墙(如有)

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

七、常见问题

  • 403 Forbidden:目录权限或 SELinux 问题
    解决:
    chown -R apache:apache /var/www
    setsebool -P httpd_read_user_content 1
    
  • 多端口虚拟主机:<VirtualHost *:8080> 并监听端口

如果你指的是 本地多项目 / 同 IP 多端口 / HTTPS 虚拟主机,可以告诉我具体场景,我可以给你对应配置。

0 踩