Apache 虚拟主机 + 不同端口号

一、核心规则(必看)

  1. 想要用哪个端口,必须先在 Apache 里 Listen 端口号
  2. 每个虚拟主机写 <VirtualHost *:端口号>
  3. 不同端口 = 不同网站,互不干扰

二、3 步完成配置(Windows / Linux 通用)

第 1 步:让 Apache 监听新端口

打开 Apache 主配置文件
  • Windows XAMPPxampp/apache/conf/httpd.conf
  • Linux/etc/httpd/conf/httpd.conf/etc/apache2/ports.conf
找到 Listen 80在下面添加你要的端口
apache
# 默认端口
Listen 80

# 新增端口1
Listen 8080

# 新增端口2
Listen 8090
想加几个网站就加几个端口。

第 2 步:配置不同端口的虚拟主机(核心)

打开虚拟主机配置文件:
  • Windows XAMPPconf/extra/httpd-vhosts.conf
  • Linux/etc/httpd/conf.d/vhost.conf

直接复制下面配置(改路径即可)

apache
# 网站1:80端口
<VirtualHost *:80>
    DocumentRoot "D:/xampp/htdocs/site80"
    ServerName localhost:80

    <Directory "D:/xampp/htdocs/site80">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# 网站2:8080端口
<VirtualHost *:8080>
    DocumentRoot "D:/xampp/htdocs/site8080"
    ServerName localhost:8080

    <Directory "D:/xampp/htdocs/site8080">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

# 网站3:8090端口
<VirtualHost *:8090>
    DocumentRoot "D:/xampp/htdocs/site8090"
    ServerName localhost:8090

    <Directory "D:/xampp/htdocs/site8090">
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Linux 路径版本

apache
DocumentRoot /var/www/site80

第 3 步:重启 Apache

  • Windows:XAMPP → Stop → Start
  • Linux
    bash
    运行
    systemctl restart httpd   # CentOS
    systemctl restart apache2 # Ubuntu
    

三、测试访问

plaintext
http://localhost        → 网站1(80端口)
http://localhost:8080   → 网站2(8080端口)
http://localhost:8090   → 网站3(8090端口)
能分别看到不同页面 = 配置成功 ✅

四、Linux 必须开放防火墙

bash
运行
# CentOS
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=8090/tcp
firewall-cmd --reload

# Ubuntu
ufw allow 8080
ufw allow 8090

五、最常见 3 个坑

  1. 新端口无法访问

    没加 Listen 端口号

  2. 所有端口显示同一个网站

    虚拟主机没按端口分开写

  3. 403 无权限

    缺少 <Directory> 权限配置


总结

  1. Listen 端口(告诉 Apache 要监听哪些端口)
  2. <VirtualHost *: 端口>(每个端口一个独立网站)
  3. 重启 Apache
  4. 防火墙放行端口
上一篇 华为CE-交换机配置-配置BFD for IPv6单跳检测
下一篇 服务器更换主板后系统无法识别网卡