phpEnv是一款集成了PHP、MySQL、Apache、Nginx等多种开发组件的本地环境搭建工具,很多开发者会用它来快速搭建PHP开发环境。当我们需要同时运行多个不同的PHP项目时,单端口显然无法满足需求,这时候就需要配置多端口,同时如果需要在外网访问这些不同端口的服务,还需要做额外的网络设置。

phpEnv多端口配置(Apache服务器)
如果你的phpEnv默认使用的是Apache服务器,可以按照以下步骤配置多端口:
1. 修改Apache监听端口配置
首先打开phpEnv的安装目录,找到Apache的配置文件httpd.conf,一般路径是phpEnvapacheconfhttpd.conf。用文本编辑器打开该文件,找到Listen 80这一行,在下方添加你需要新增的端口,比如要新增8080和8081端口,就添加如下内容:
# 原有监听端口 Listen 80 # 新增端口 Listen 8080 Listen 8081
2. 配置虚拟主机对应多端口
继续在httpd.conf文件中找到#Include conf/extra/httpd-vhosts.conf这一行,去掉前面的#号,开启虚拟主机配置。然后打开phpEnvapacheconfextrahttpd-vhosts.conf文件,添加对应端口的虚拟主机配置:
# 80端口对应项目1
<VirtualHost *:80>
DocumentRoot "D:/phpEnv/www/project1"
ServerName localhost
<Directory "D:/phpEnv/www/project1">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# 8080端口对应项目2
<VirtualHost *:8080>
DocumentRoot "D:/phpEnv/www/project2"
ServerName localhost
<Directory "D:/phpEnv/www/project2">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# 8081端口对应项目3
<VirtualHost *:8081>
DocumentRoot "D:/phpEnv/www/project3"
ServerName localhost
<Directory "D:/phpEnv/www/project3">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
3. 重启Apache服务
保存所有修改的配置文件,回到phpEnv面板,点击重启Apache按钮,等待服务重启完成。之后在浏览器访问localhost:8080、localhost:8081就可以看到对应项目的页面了。
phpEnv多端口配置(Nginx服务器)
如果你使用的是Nginx服务器,配置多端口的步骤如下:
1. 修改Nginx监听端口配置
打开phpEnv安装目录下的Nginx配置文件nginx.conf,路径一般是phpEnvnginxconfnginx.conf。在http块内部添加多个server块,每个server块对应一个端口:
http {
# 其他原有配置
# 80端口服务
server {
listen 80;
server_name localhost;
root "D:/phpEnv/www/project1";
index index.html index.htm index.php;
# PHP解析配置
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 8080端口服务
server {
listen 8080;
server_name localhost;
root "D:/phpEnv/www/project2";
index index.html index.htm index.php;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 8081端口服务
server {
listen 8081;
server_name localhost;
root "D:/phpEnv/www/project3";
index index.html index.htm index.php;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
2. 重启Nginx服务
保存配置文件后,在phpEnv面板重启Nginx服务,即可通过对应端口访问不同项目。
phpEnv多端口外网访问设置
完成本地多端口配置后,如果需要外网访问这些端口的服务,需要做以下设置:
1. 开放系统防火墙端口
Windows系统需要开放对应的端口,避免防火墙拦截外网请求。打开Windows Defender 防火墙,进入高级设置,在入站规则中新建规则,选择端口,然后输入你需要开放的端口号,比如8080、8081,允许连接,最后给规则命名保存即可。
2. 路由器端口映射
如果你的网络是通过路由器连接的,需要在路由器后台做端口映射。登录路由器管理页面,找到端口映射或者虚拟服务器设置选项,添加映射规则:内部IP填写你本地电脑的局域网IP,内部端口填写phpEnv配置的端口,外部端口可以设置和内部端口一致,协议选择TCP,保存规则。
3. 验证外网访问
完成以上设置后,你可以通过搜索引擎查询自己的公网IP,然后在其他网络的设备上访问公网IP:端口号,比如120.xxx.xxx.xxx:8080,如果能正常打开项目页面,说明外网访问设置成功。
常见问题说明
- 如果重启服务后端口无法访问,先检查端口是否被其他程序占用,可以在命令行使用
netstat -ano | findstr 端口号查看占用情况。 - 外网访问时如果提示连接超时,先检查防火墙是否开放端口,再检查路由器端口映射是否配置正确。
- 如果使用的是云服务器,还需要在云服务器控制台的安全组中开放对应的端口。