温馨提示×

centos apache2怎么设虚拟主机

小樊
39
2026-09-15 02:14:54
栏目: 云计算

CentOS 上,Apache 的服务名通常是 httpd(不是 apache2,apache2 是 Debian/Ubuntu 的叫法)。下面以 CentOS 7/8 为例说明如何配置 Apache 虚拟主机(Virtual Host)


一、确认 Apache 已安装并运行

# 安装(如果还没装)
sudo yum install httpd -y        # CentOS 7
# 或
sudo dnf install httpd -y        # CentOS 8

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

# 查看状态
sudo systemctl status httpd

二、创建网站目录

假设你要建两个站点:

  • site1.example.com/var/www/site1
  • site2.example.com/var/www/site2
sudo mkdir -p /var/www/site1/public_html
sudo mkdir -p /var/www/site2/public_html

sudo chown -R apache:apache /var/www
sudo chmod -R 755 /var/www

写个测试页面:

echo "site1" | sudo tee /var/www/site1/public_html/index.html
echo "site2" | sudo tee /var/www/site2/public_html/index.html

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

CentOS 推荐放在:

/etc/httpd/conf.d/

1️⃣ site1 虚拟主机

sudo vi /etc/httpd/conf.d/site1.conf

内容:

<VirtualHost *:80>
    ServerName site1.example.com
    DocumentRoot /var/www/site1/public_html
    ErrorLog /var/log/httpd/site1-error.log
    CustomLog /var/log/httpd/site1-access.log combined
</VirtualHost>

2️⃣ site2 虚拟主机

sudo vi /etc/httpd/conf.d/site2.conf

内容:

<VirtualHost *:80>
    ServerName site2.example.com
    DocumentRoot /var/www/site2/public_html
    ErrorLog /var/log/httpd/site2-error.log
    CustomLog /var/log/httpd/site2-access.log combined
</VirtualHost>

四、检查配置并重启 Apache

# 检查语法
sudo httpd -t

# 重启
sudo systemctl restart httpd

五、本地测试(无真实域名时)

修改本地 hosts 文件(Windows / macOS / Linux 客户端):

服务器IP  site1.example.com
服务器IP  site2.example.com

浏览器访问:

http://site1.example.com
http://site2.example.com

六、常见问题

❌ 403 Forbidden

  • 检查 DocumentRoot 权限
  • 检查 SELinux:
sudo setsebool -P httpd_read_user_content 1
# 或临时关闭测试
sudo setenforce 0

❌ 无法访问

  • 防火墙放行 80:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

如果你用的是 CentOS + HTTPS(SSL)多端口虚拟主机,我也可以继续帮你写配置。

0