ThinkPHP 6+ 必须将 public 目录设为 Web 服务器根目录,所有请求须经 public/index.php 入口;若指向项目根目录则导致 404、白屏或敏感文件暴露,Nginx 需配置 root 为绝对路径无尾斜杠并含 try_files 指令,Apache 需启用 mod_rewrite 和 AllowOverride All。

直接访问 http://localhost/your-project-name/public/ 就能看到 ThinkPHP 欢迎页,但前提是 public 目录必须设为 Web 服务器的根目录——这是 ThinkPHP 6+ 的强制要求,漏掉这一步就会 404 或报错。
确保 public 是 Web 根目录
ThinkPHP 6 不再允许从项目根目录(含 app、config 等)直接访问,所有 HTTP 请求必须经由 public/index.php 入口。常见错误是把整个项目文件夹丢进 htdocs 就去访问 http://localhost/mytp/,结果白屏或 404。
- XAMPP/phpStudy 用户:浏览器地址要带
/public/,例如http://localhost/mytp/public/ - Laragon 用户:创建项目时自动把 public 设为根目录,直接访问
http://mytp.test即可 - Nginx 用户:server 配置中的 root 必须指向
your-project/public,不是项目根目录
配置默认首页路由
想输入域名(如 http://mytp.test)就直接打开首页,而不是每次都要输 /public/ 或 /index.php,就得靠路由设置。
- 编辑
app/route.php,添加:Route::get('/', 'Index/index'); - 确保
app/controller/Index.php存在,且里面有index()方法,里面调用$this->fetch();或return view(); - 如果用的是模块化结构(如 Home 模块),也可写成
Route::get('/', 'Home/Index/index');
检查调试模式与入口文件
刚搭好框架时,若页面空白但无报错,大概率是调试没开、错误被静默了。
立即学习“PHP免费学习笔记(深入)”;
- 打开
app/config/app.php,确认'app_debug' => true - 检查
public/index.php首行是否为define('APP_PATH', __DIR__ . '/../app/');,路径不对会导致加载失败 - Apache 用户确认已开启
mod_rewrite;Nginx 用户需配置try_files $uri $uri/ /index.php?$query_string;
快速验证是否成功
不用写代码也能判断环境是否跑通:
- 访问
http://localhost/mytp/public/→ 显示「欢迎使用 ThinkPHP」→ 说明基础环境 OK - 访问
http://localhost/mytp/public/index.php?s=/→ 能看到首页 → 说明路由和控制器加载正常 - 把
app/config/app.php中app_debug改为true后刷新,有详细报错 → 说明调试已生效



















