phpEnv虚拟主机配置需三步:一查httpd-vhosts.conf实际路径并确保httpd.conf中Include语句启用;二改该文件的ServerName、DocumentRoot、Require all granted及Directory权限;三同步修改C:WindowsSystem32driversetchosts添加127.0.0.1域名映射。

phpEnv 的 httpd-vhosts.conf 默认位置不固定,但通常在 Apache 安装子目录中
phpEnv 是轻量级 PHP 环境集成包(类似 XAMPP/WAMP),但它没有统一安装路径。它的虚拟主机配置文件不是放在全局 conf/extra/httpd-vhosts.conf,而是取决于你解压/安装时选择的根目录。
常见实际路径有以下几种(请按顺序排查):
C:phpenvpacheconfextrahttpd-vhosts.confC:phpenvApache24confextrahttpd-vhosts.conf-
C:phpenvpacheconfhttpd-vhosts.conf(部分旧版直接放 conf 下) - 若你用的是绿色版、自定义解压路径,请搜索整个
phpenv文件夹内所有httpd-vhosts.conf文件
注意:phpEnv 默认可能**不启用**该文件。打开主配置 httpd.conf,确认这一行未被注释:Include conf/extra/httpd-vhosts.conf
为什么改了 httpd-vhosts.conf 没生效?检查三个关键点
常见现象是保存配置、重启 Apache 后域名仍 404 或跳默认站点——多半卡在这三处:
立即学习“PHP免费学习笔记(深入)”;
-
ServerName值必须和你在hosts文件里写的完全一致(包括大小写、.test/.local/.dev 后缀),且不能含下划线 -
DocumentRoot路径中的反斜杠在 Windows 下需为正斜杠/或双反斜杠\,否则 Apache 启动失败(错误日志里会报Syntax error on line X) - Apache 进程是否真正重启成功?phpEnv 托盘图标右键常有「Restart Apache」选项,仅点「Start」不等于重载配置;也可命令行执行
httpd -t验证配置语法是否正确
Require all granted 缺失会导致 403 Forbidden
phpEnv 多基于 Apache 2.4+,而 2.4 版本废弃了旧式 Order allow,deny,改用 Require 指令。如果你从老教程复制配置,漏掉这句就会拒绝所有访问。
确保每个 <directory></directory> 块内包含:
<Directory "C:/phpenv/www/myproject">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
少写 all(比如只写 Require granted)或拼错单词,都会让 Apache 忽略该行,回退到默认拒绝策略。
hosts 文件必须同步修改,且无空格/多余字符
phpEnv 本身不改系统 hosts,这步必须手动做。路径固定为:C:WindowsSystem32driversetchosts
添加时务必遵守格式:
- 每行一个映射,形如:
127.0.0.1 myapp.test - IP 和域名之间用**单个制表符或空格**分隔,不要用多个空格或中文符号
- 行尾不能有空格、BOM、Unicode 零宽字符(VS Code 可设编码为 UTF-8 无 BOM)
- 改完保存后,无需重启系统,但浏览器缓存可能需清空或用隐身窗口测试
最容易被忽略的是:改了 hosts 却没关掉代理软件(如 Clash、Surge)、或公司网络强制 DNS 重定向——此时 ping myapp.test 会失败,得先确认解析是否真走本地。



















