在本地开发过程中,经常会遇到需要同时维护多个PHP项目的情况。使用phpEnv可以很方便地配置多域名指向不同目录,从而实现在一套集成环境下管理多个网站。下面介绍具体的操作步骤和原理。

一、理解phpEnv的虚拟主机机制
phpEnv内置了Apache或Nginx服务,通过虚拟主机(Virtual Host)配置,可以让同一个服务根据访问的域名,将请求映射到不同的物理目录。每个站点对应一条虚拟主机记录,记录中包含域名、根目录、端口等信息。
二、在phpEnv中添加多域名站点
打开phpEnv面板,进入“网站”或“虚拟主机”管理页面,点击“创建网站”或“添加域名”。在表单中填写站点域名(例如 site1.local、site2.local),并选择该域名对应的项目目录(如 D:/www/site1、D:/www/site2)。保存后phpEnv会自动生成对应的服务器配置并重新加载服务。
示例:手动查看Nginx虚拟主机配置
如果你使用的是Nginx,phpEnv生成的配置类似以下内容:
server {
listen 80;
server_name site1.local;
root D:/www/site1;
index index.php index.html;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
server {
listen 80;
server_name site2.local;
root D:/www/site2;
index index.php index.html;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
三、修改本机hosts完成域名解析
由于 site1.local 和 site2.local 并非真实公网域名,需要在本机 hosts 文件中添加解析记录,将域名指向本地回环地址。
- 打开 C:WindowsSystem32driversetchosts
- 在末尾添加:127.0.0.1 site1.local 和 127.0.0.1 site2.local
- 保存文件(需管理员权限)
hosts文件片段示例
127.0.0.1 site1.local 127.0.0.1 site2.local
四、验证多目录访问
在浏览器分别访问 http://site1.local 和 http://site2.local,如果页面正确显示各自目录下的内容,说明多域名指向不同目录的配置已经生效。若访问异常,可检查phpEnv中站点目录权限、服务是否重启以及hosts是否保存成功。
五、常见问题
1. 域名冲突或无法访问
确认没有其他程序占用80端口,且phpEnv中该站点处于启用状态。使用 ping site1.local 命令可验证hosts解析是否正常。
2. 想使用其他端口
创建站点时指定非80端口,例如 8080,访问时写成 http://site1.local:8080 即可,同时防火墙需允许该端口。
通过phpEnv的多网站管理,开发者能够轻松在本地构建多个隔离的站点环境,提升多项目并行开发效率。