一、核心规则(必看)
- 想要用哪个端口,必须先在 Apache 里
Listen 端口号 - 每个虚拟主机写
<VirtualHost *:端口号> - 不同端口 = 不同网站,互不干扰
二、3 步完成配置(Windows / Linux 通用)
第 1 步:让 Apache 监听新端口
打开 Apache 主配置文件
- Windows XAMPP:
xampp/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 XAMPP:
conf/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 个坑
- 新端口无法访问
没加
Listen 端口号 - 所有端口显示同一个网站
虚拟主机没按端口分开写
- 403 无权限
缺少
<Directory>权限配置
总结
- Listen 端口(告诉 Apache 要监听哪些端口)
- <VirtualHost *: 端口>(每个端口一个独立网站)
- 重启 Apache
- 防火墙放行端口