Nginx 配置 ThinkPHP 伪静态时,root 必须指向 public/ 目录;若指向项目根目录,将导致类加载失败、页面白屏、路由全部 404;正确写法为 root /var/www/myapp/public;(末尾无斜杠,不可用软链)。

Nginx 配置 ThinkPHP 伪静态时,root 必须指向项目的 public/ 目录。
这是硬性要求,不是可选项。ThinkPHP 6 和 8 版本已将入口文件 index.php 及静态资源统一移到 public/ 子目录下,框架所有自动加载路径(如 vendor/autoload.php)都以该目录为基准。
如果 root 错误地指向项目根目录(比如 /var/www/myapp),会导致:
- PHP 找不到
think\App类 - 页面静默白屏,不报错、无日志提示
- 路由完全失效,除首页外全部 404
✅ 正确写法示例:
立即学习“PHP免费学习笔记(深入)”;
root /var/www/myapp/public; # Linux # 或 root D:/www/myapp/public; # Windows
⚠️ 注意细节:
- 路径末尾不能加斜杠(如
/public/是错的) -
不能用符号链接代替真实路径,
$realpath_root依赖物理路径解析 - 宝塔、小皮等面板中,“网站根目录”设置项也必须选到
public/文件夹,而非整个项目文件夹
这个设定是后续 try_files 和 fastcgi_param 正常工作的前提。其他规则再完善,root 指错了,一切归零。



















