在本地使用phpEnv开发时,若需要同时运行多个PHP项目,让不同项目通过不同端口访问是高效的解决方案,phpEnv支持通过修改Web服务配置实现多端口监听。以下是具体的配置步骤和相关说明。

一、确认phpEnv使用的Web服务类型
phpEnv默认支持Apache和Nginx两种Web服务,不同服务的多端口配置方式略有区别。打开phpEnv面板,在首页的Web服务栏可以看到当前启用的服务类型,后续操作需要根据这个类型选择对应的配置路径。
二、Apache服务配置多端口
1. 添加监听端口
首先找到Apache的配置文件httpd.conf,在phpEnv中可以通过点击设置-Apache-配置文件快速打开。在配置文件中找到Listen 80的配置项,在其下方添加新的监听端口,例如需要添加8080和8081端口,添加如下内容:
# 原有监听端口 Listen 80 # 新增监听端口 Listen 8080 Listen 8081
2. 配置虚拟主机绑定项目
打开Apache的虚拟主机配置文件httpd-vhosts.conf,同样可以通过phpEnv的配置文件入口打开。为每个需要访问的项目配置对应的虚拟主机,指定端口和项目目录:
# 80端口项目配置
<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端口项目配置
<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端口项目配置
<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,等待服务重启完成。
三、Nginx服务配置多端口
1. 修改Nginx主配置添加监听
如果使用Nginx服务,首先打开Nginx的主配置文件nginx.conf,在http块内部添加多个server配置段,每个段对应一个端口和项目:
http {
# 原有其他配置
# 80端口项目配置
server {
listen 80;
server_name localhost;
root "D:/phpEnv/www/project1";
index index.php index.html;
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.php index.html;
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.php index.html;
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,等待服务重启生效。
四、配置验证与问题排查
服务重启后,打开浏览器分别访问localhost、localhost:8080、localhost:8081,如果分别对应到三个项目的首页,说明配置成功。
如果访问出现端口无法连接的情况,可以按照以下步骤排查:
- 检查配置文件中监听端口是否有拼写错误,是否有重复监听同一个端口的情况
- 确认phpEnv的Web服务是否已经正常重启,没有报错
- 检查系统防火墙是否拦截了新增的端口,可暂时关闭防火墙后重试
- 确认虚拟主机中配置的项目目录是否存在,目录路径是否正确
注意:如果配置后修改了项目文件没有生效,可能是开启了OPcache等缓存,需要重启Web服务或者清空对应缓存。