ThinkPHP部署后页面空白主因是PHP错误被静默屏蔽、入口目录未设为public、runtime目录不可写或伪静态未生效;需依次开启错误显示、校正根目录、赋权runtime、配置重写规则。

ThinkPHP部署后打不开页面,不是代码写错了,而是环境链路中某个环节断了——常见于入口路径错、错误被静默吞掉、runtime不可写或伪静态没生效。快速定位,按顺序检查这四点就能解决绝大多数问题。
先让错误“炸”出来
页面空白但没报错?大概率是 PHP 错误被关闭了。直接在 public/index.php 第一行(<?php 后面、任何 require 之前)加两行:
ini_set('display_errors', '1');error_reporting(E_ALL);
刷新页面,如果出现红色报错堆栈,说明问题在 PHP 层;如果还是空白,说明错误发生在更早阶段(比如 autoload.php 加载失败、PHP 版本不兼容或语法错误)。
确认入口目录设对了
ThinkPHP 6+ 强制要求网站根目录指向 public 子目录,不是项目根目录。尤其在宝塔、LNMP 等面板中,容易忽略这点:
立即学习“PHP免费学习笔记(深入)”;
- 宝塔用户:站点设置 → 「网站目录」→ 「运行目录」必须选
/public(下拉选择,不要手动输) - LNMP 用户:Nginx 配置的
root必须指向/path/to/your/project/public - Apache 用户:确保
DocumentRoot指向 public 目录,且 .htaccess 生效
检查 runtime 目录是否可写
框架启动时要生成缓存、日志、路由映射等文件,runtime 目录必须对 Web 进程用户(如 www-data、nginx)有读写执行权限:
- 执行
ls -ld runtime runtime/log,确认权限含drwxr-xr-x或更宽松 - 若属主不对,运行
chown -R www-data:www-data runtime(用户名按实际调整) - 顺便检查
config/app.php中'record' => true是否开启,否则日志不会写入
验证伪静态规则是否生效
首页能打开但其他路由 404 或空白?基本是 URL 重写没配好:
- Apache:确认
.htaccess在项目根目录,且启用了mod_rewrite;宝塔用户可在「伪静态」里选「ThinkPHP」模板 - Nginx:server 块中必须包含
try_files $uri $uri/ /index.php?$query_string;,漏掉$uri/会导致带斜杠路径(如 /admin/)直接 404 - 快速验证:访问
http://域名.com/index.php/index,能通说明路由正常,问题纯属重写配置



















