根本原因是phpEnv默认Web根目录未指向ThinkPHP 5.0的public目录,需在站点管理中将网站根目录改为项目内public路径,并启用mod_rewrite模块、重启服务。

phpEnv 下直接放 ThinkPHP 5.0 就能跑,但默认会报 404 或 Warning: require(): failed to open stream —— 根本原因不是框架没装好,而是 phpEnv 的默认 Web 根目录没对准 TP5 的 public 目录。
phpEnv 的 DocumentRoot 必须指向 public 目录
ThinkPHP 5.0 把入口统一收口到 public/index.php,而 phpEnv 默认把站点根目录设在项目根(即含 application、think、public 的那层),导致请求直接落在 index.php 外层,PHP 找不到自动加载器。
- 打开 phpEnv 控制面板 → 站点管理 → 编辑你的站点
- 将「网站根目录」路径从
D:\phpEnv\www\tp5改为D:\phpEnv\www\tp5\public - 保存后重启 Apache/Nginx(phpEnv 面板里有快捷按钮)
- 浏览器访问
http://localhost/,应显示 TP5 欢迎页
php think run 在 phpEnv 下无法直接使用
TP5 内置的 php think run 命令依赖 PHP 的 CLI 模式 + 正确的当前工作目录,而 phpEnv 的集成环境通常未将 php.exe 加入系统 PATH,且命令需在项目根目录(非 public)执行。
- 先确认 CLI PHP 可用:在命令行中运行
where php,若无输出,需手动添加 phpEnv 的 PHP 路径(如D:\phpEnv\php\php-7.4.33)到系统环境变量 - cd 进项目根目录(含
think文件的那个目录),不是public - 运行
php think run -p 8000,此时访问http://localhost:8000才有效 - 注意:
php think run是开发调试用,不适用于生产;正式部署仍应走 phpEnv 的 Web 服务
常见错误:require(): Failed opening required 'D:\phpEnv\www\tp5\thinkphp\base.php'
这是典型的路径错位:框架尝试从项目根加载 thinkphp 目录,但实际该目录可能不存在或位置不对。TP5.0 官方完整包已内置 thinkphp 子目录;若你用的是 composer create-project 安装,则 thinkphp 在 vendor/topthink/thinkphp,而入口文件依赖自动加载机制,不能手动移动。
- 优先用官网下载的「完整版」ZIP 包(含
thinkphp目录),解压后直接配 phpEnv 根目录到public - 若坚持用 Composer 安装,确保执行
composer install后,vendor/autoload.php存在且未被误删 - 检查
public/index.php开头几行:必须包含require __DIR__ . '/../vendor/autoload.php';(Composer 方式)或require __DIR__ . '/../thinkphp/start.php';(完整包方式) - 不要手动把
thinkphp目录剪切到项目根下——Composer 方式下它本就不该在那里
最易忽略的一点:phpEnv 的 Apache 模块里,mod_rewrite 默认是关闭的,而 TP5 路由重写依赖它。进 phpEnv 面板 → Apache 设置 → 模块管理 → 勾选 rewrite_module 并重启,否则除首页外所有路由都会 404。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











