需通过hosts映射、web服务器虚拟主机配置及路径绑定三者协同实现:1. 修改系统hosts文件添加127.0.0.1 project1.test等映射;2. apache下在httpd-vhosts.conf中配置多个virtualhost块并启用include;3. nginx下在nginx.conf中添加多个server块;4. 或使用phpenv图形界面“站点域名管理”一键添加;5. 最后验证域名、servername/server_name与路径三者完全一致。

如果您在使用phpEnv本地开发环境时需要为不同项目分配独立域名或子域名,则必须通过系统 hosts 文件映射、Web 服务器虚拟主机配置以及路径绑定三者协同实现。以下是具体操作步骤:
一、修改系统 hosts 文件添加域名映射
该步骤使操作系统将自定义域名(如 project1.test、api.project1.test)解析至本地回环地址,确保浏览器请求能被导向 phpEnv 内置的 Web 服务器。此为多域名生效的前提条件。
1、以管理员身份运行记事本(Windows)或终端中使用 sudo nano(macOS/Linux)打开 hosts 文件。
2、定位并编辑对应路径下的文件:Windows 路径为 C:\Windows\System32\drivers\etc\hosts;macOS/Linux 路径为 /etc/hosts。
3、在文件末尾新增以下内容(可根据实际项目增减行数):
127.0.0.1 project1.test
127.0.0.1 api.project1.test
127.0.0.1 admin.project1.test
4、保存文件;若提示权限拒绝,请确认已使用管理员/root 权限运行编辑器。
5、刷新 DNS 缓存:Windows 执行 ipconfig /flushdns;macOS 执行 sudo dscacheutil -flushcache;Linux 执行 sudo systemd-resolve --flush-caches。
二、配置 Apache 虚拟主机(适用于 phpEnv 默认 Apache 模式)
phpEnv 内置 Apache 服务需通过 httpd-vhosts.conf 文件定义多个
1、进入 phpEnv 安装目录,找到 Apache 配置路径:phpenv\Apache\conf\extra\httpd-vhosts.conf。
2、用文本编辑器打开该文件,在末尾添加如下结构的虚拟主机配置(注意替换 DocumentRoot 实际路径):
ServerName project1.test
DocumentRoot "D:/phpenv/www/project1"
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ServerName api.project1.test
DocumentRoot "D:/phpenv/www/project1/api"
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
3、确认 Apache 主配置文件 httpd.conf 中已启用以下两行(取消注释):
Include conf/extra/httpd-vhosts.conf
Listen 80
4、重启 phpEnv 中的 Apache 服务,使配置生效。
三、配置 Nginx server 块(适用于 phpEnv 切换至 Nginx 模式)
当 phpEnv 使用 Nginx 作为 Web 服务器时,需在 nginx.conf 的 http 块内添加多个 server 块,每个块通过 server_name 匹配对应域名,并指向不同物理路径,实现子域名级隔离。
1、打开 phpEnv 的 Nginx 配置文件:phpenv\Nginx\conf\nginx.conf。
2、在 http { ... } 区域内部末尾添加如下 server 配置(按需复制修改):
server {
listen 80;
server_name project1.test;
root D:/phpenv/www/project1;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
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;
}
}
server {
listen 80;
server_name api.project1.test;
root D:/phpenv/www/project1/api;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
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;
}
}
3、检查语法是否正确:在 Nginx 目录下执行 nginx -t。
4、重载 Nginx 配置:nginx -s reload。
四、使用 phpEnv 自带站点管理功能(图形界面方式)
phpEnv 提供可视化站点管理模块,可避免手动编辑配置文件,适合快速添加子域名绑定,所有操作均生成标准虚拟主机配置并自动写入对应配置文件。
1、启动 phpEnv 控制面板,点击【其他选项菜单】→【站点域名管理】。
2、点击【添加站点】按钮,依次填写以下字段:
网站域名:project1.test
网站目录:D:\phpenv\www\project1
网站端口:80
3、再次点击【添加站点】,填写第二组信息:
网站域名:api.project1.test
网站目录:D:\phpenv\www\project1\api
网站端口:80
4、点击【保存】,系统将自动生成并覆盖 httpd-vhosts.conf 或 nginx.conf 对应配置段。
5、重启 phpEnv 中的 Web 服务,完成绑定。
五、验证与调试关键点
完成上述任一配置后,需逐项验证各环节是否连通,避免因单点疏漏导致域名无法访问。重点排查以下三项是否严格一致:
1、hosts 文件中声明的域名是否与浏览器访问地址完全相同(不含 http://、端口号、斜杠)。
2、虚拟主机配置中的 ServerName(Apache)或 server_name(Nginx)是否与 hosts 行中域名拼写、大小写、前后缀完全一致。
3、DocumentRoot 或 root 指向的物理路径是否存在且包含可执行的入口文件(如 index.php),目录权限是否允许 Web 进程读取。
4、若访问返回 403 错误,请检查对应目录的
5、若访问返回 502 错误,请确认 PHP-FPM 或 CGI 进程正在运行,且 fastcgi_pass 地址与端口匹配。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











