phpenv 默认首页由 apache 的 directoryindex 和 documentroot 共同决定,需修改 httpd.conf 中的 directoryindex 顺序(如设为 index.php 优先)和 documentroot 路径,并重启 apache;虚拟主机配置可兼顾项目与管理页。

phpEnv 的默认首页由 Apache 配置决定,不是 phpEnv 自身控制
phpEnv 本质是 Windows 下的 PHP + Apache + MySQL 一键集成包,它不接管 Web 服务器的目录索引逻辑。真正起作用的是 Apache 的 DirectoryIndex 指令。如果你改了 phpEnv 的某个界面设置却没生效,大概率是因为没动对地方。
常见现象:访问 http://localhost/ 显示 Apache 默认页(It works),或跳转到 phpEnv 自带的管理页(如 /phpenv/),而不是你项目根目录下的 index.php。
- Apache 默认的
DirectoryIndex通常是index.html index.cgi index.pl index.php index.xhtml index.htm - 顺序靠前的文件名会优先被加载;只要存在同名文件,后面的就不会触发
- phpEnv 安装后常把
DocumentRoot指向自身管理目录(如C:/phpEnv/www/),而你的项目可能放在别处
修改 Apache 的 DirectoryIndex 顺序(关键操作)
打开 phpEnv 安装目录下的 Apache 配置文件:C:/phpEnv/Apache/conf/httpd.conf(路径以你实际安装位置为准)。搜索 DirectoryIndex,你会看到类似这一行:
DirectoryIndex index.html index.php index.htm
把它改成你想要的优先级,比如强制 index.php 优先于 index.html:
DirectoryIndex index.php index.html index.htm
改完保存,然后在 phpEnv 管理界面中「重启 Apache」——不是只点「启动」,必须重启才生效。
- 如果项目里同时有
index.php和index.html,现在会优先加载index.php - 可以添加多个文件名,用空格分隔;不支持通配符或正则
- 该配置全局生效,影响所有虚拟主机,除非你在
<virtualhost></virtualhost>块内单独覆盖
确保 DocumentRoot 指向你的项目目录
即使 DirectoryIndex 设置正确,如果 DocumentRoot 还指向 phpEnv 自带的 www 目录,你的 index.php 依然不会被访问到。
在同一个 httpd.conf 文件中,找到这行:
DocumentRoot "C:/phpEnv/www"
把它改为你的项目路径,例如:
DocumentRoot "D:/myproject"
紧接着还要同步修改下面的 <directory></directory> 块中的路径,否则会报 403 Forbidden:
<directory></directory>
- 路径使用正斜杠
/或双反斜杠\,单反斜杠会导致 Apache 启动失败 - 目录需有读取权限;Windows 下若用 OneDrive 或某些加密目录,可能触发访问拒绝
- 改完必须重启 Apache,仅重载配置(graceful restart)有时不刷新 DocumentRoot
虚拟主机方式更安全,但 phpEnv 默认不启用
直接改全局 DocumentRoot 会影响 phpEnv 自带管理页(如 /phpenv/)。想保留管理功能又让自己的项目做默认首页,建议启用虚拟主机。
在 httpd.conf 中取消注释这行:
#Include conf/extra/httpd-vhosts.conf
去掉前面的 #,然后编辑 C:/phpEnv/Apache/conf/extra/httpd-vhosts.conf,加入:
<virtualhost>
DocumentRoot "D:/myproject"
ServerName localhost
<directory>
Require all granted
</directory>
DirectoryIndex index.php index.html
</virtualhost>
这样 localhost 就走你的项目,而 phpEnv 管理页仍可通过 http://127.0.0.1/phpenv/ 访问(IP 地址绕过虚拟主机匹配)。
- 多个项目可配多个
<virtualhost></virtualhost>,用不同ServerName区分 -
Require all granted是 Apache 2.4+ 必须项,漏写会导致 403 - 改完
vhosts.conf后,httpd.conf中的全局DirectoryIndex不再影响该虚拟主机
最容易被忽略的一点:phpEnv 的「网站管理」界面里显示的「默认首页」只是它前端的一个提示,和 Apache 实际行为完全无关。所有改动必须落在 httpd.conf 或 vhosts.conf 里,并且每次修改后都得重启 Apache——点「启动」或「重载」都不够。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











