在phpEnv这类本地集成环境中,Nginx作为默认Web服务器,可以通过增加server配置块,将某个二级域名直接指向项目中的子目录,从而实现多站点或模块隔离访问。

一、确认phpEnv的Nginx配置位置
打开phpEnv面板,进入对应PHP版本的站点管理,找到当前站点的Nginx配置文件(通常是vhost下的conf文件)。我们新增一个独立的server块来处理二级域名。
二、配置二级域名指向子目录
假设主域名为 localhost.com,子目录为 /www/project/api,希望用 api.localhost.com 访问该目录。配置如下:
server {
listen 80;
server_name api.localhost.com;
root "D:/phpEnv/www/project/api";
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
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;
}
}
注意:Windows下root路径应使用正斜杠或双反斜杠,且目录必须真实存在。
三、修改hosts并重启服务
在系统hosts文件中添加解析记录,让二级域名指向本地:
127.0.0.1 api.localhost.com
保存后,在phpEnv中重启Nginx服务,浏览器访问 api.localhost.com 即可打开子目录内容。
四、常见问题
- 如果页面404,检查root路径是否写错,或子目录是否有入口文件。
- 如果PHP不解析,确认fastcgi_pass端口与phpEnv中PHP-CGI监听端口一致。
- 多个二级域名可写多个server块,互不干扰。
使用phpEnv配置Nginx子目录绑定,比在代码里做路由判断更清晰,也更接近生产环境做法。