温馨提示×

apache虚拟主机centos怎配

小樊
39
2026-09-21 05:58:40
栏目: 云计算

下面以 CentOS 7/8 + Apache(httpd) 为例,讲一下 Apache 虚拟主机(VirtualHost) 的配置方法,包含基于域名基于端口两种常见方式。


一、前提条件

  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

二、基于域名的虚拟主机(最常用)

1. 创建网站目录

mkdir -p /var/www/example.com/public_html
mkdir -p /var/www/test.com/public_html

echo "example.com" > /var/www/example.com/public_html/index.html
echo "test.com" > /var/www/test.com/public_html/index.html

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

推荐放在:

/etc/httpd/conf.d/

新建文件:

vim /etc/httpd/conf.d/example.conf

内容示例:

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

<VirtualHost *:80>
    ServerName test.com
    DocumentRoot /var/www/test.com/public_html
</VirtualHost>

3. 检查配置并重启

httpd -t
systemctl restart httpd

4. 本地测试(无真实域名时)

修改本地 hosts 文件:

# Windows: C:\Windows\System32\drivers\etc\hosts
# Linux/macOS: /etc/hosts

添加:

服务器IP example.com
服务器IP test.com

浏览器访问即可。


三、基于端口的虚拟主机

1. 修改主配置监听端口

vim /etc/httpd/conf/httpd.conf

确保有:

Listen 80
Listen 8080

2. 虚拟主机配置

vim /etc/httpd/conf.d/port.conf
<VirtualHost *:80>
    DocumentRoot /var/www/port80
</VirtualHost>

<VirtualHost *:8080>
    DocumentRoot /var/www/port8080
</VirtualHost>

3. 防火墙放行端口

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

四、常见问题

403 Forbidden

  • 目录权限不对
chown -R apache:apache /var/www
chmod -R 755 /var/www

SELinux 导致无法访问

setsebool -P httpd_read_user_content 1
# 或
setenforce 0  # 临时关闭(不推荐生产)

配置不生效

  • 确认文件在 conf.d/*.conf
  • httpd -t 无报错
  • 重启 httpd

如果你告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Apache 版本
  • 本地环境还是云服务器
  • 是否要用 HTTPS

我可以直接给你一套可复制的完整配置

0