发布于2026-07-10 阅读(0)
扫一扫,手机访问

说到在 Ubuntu 下排查 ThinkPHP 的问题,很多人会先翻框架手册,其实最直接的办法是看日志。不过日志藏在哪里、怎么快速查看,确实有不少细节值得捋一捋。
默认情况下,框架的日志会全部落入 runtime/log/ 这个目录里。更准确地说,ThinkPHP 的日志是按日期生成文件的——比如你打开 runtime/log/,会看到一堆以日期命名的文件,像 2025-08-14.log 这种格式。如果你用的是 ThinkPHP 5.0 或更早的版本,路径可能会有点差别:它会先按年月建文件夹(如 202507),里面再放每日的 .log 文件(如 07.log)。还有一点需要注意:如果你在项目里自定义了 runtime 目录,日志的存储位置会随之变化,不会保在默认路径下。
知道了日志在哪,接下来就是怎么看了。先说几个最常见的操作:
进入项目根目录后,如果想要查看当天的日志,可以直接用这条命令:
如果你希望在日志不断写入时实时观察其输出,可以用:
想要按月浏览 log 文件?
想要查看某一天的日志?假设是 7 月 7 日:
如果是 ThinkPHP 5.0 那种按两级目录存放的版本,命令会略有不同。比如实时跟踪某天的日志:
还有一种情况:如果你的项目把日志写入了自定义目录,而你一时记不起配置在哪。这时可以在项目根目录下搜索一下:
这两行命令可以在所有配置文件中找到与你日志路径相关的设置,非常实用。
有时候日志没出来,不是代码的问题,而是权限不够。确保 Web 服务运行的用户(通常是 www-data)对 runtime 及子目录有写权限,否则应用可能会静默失败——既不写日志,也不报错。这一点在排查问题时经常被忽略。
如果你已经修改过日志配置(比如自定义了path),那么以你的配置为准。也可以直接在代码里把路径常量打印出来确认。举个例子:
use think\facade\App; var_dump(App::getRuntimePath() . 'log/');echo RUNTIME_PATH . 'log/';看到打印出来的确切路径,你就知道该去哪个地方翻日志了。
最后一点看似基础,但不少人搞混过:ThinkPHP 的应用日志,跟 PHP-FPM、Apache、Nginx 这些底层服务的错误日志,完全是两套东西。前者记录的是代码层面的业务错误、SQL 报错等;后者记录的是服务器配置问题、模块未加载、500 状态码等。因此,当你遇到“白屏”“500 错误”“模块不存在”这类问题时,不要只盯着 runtime/log/ 看,也要看系统日志:
tail -f /var/log/apache2/error.logtail -f /var/log/nginx/error.logtail -f /var/log/php7.x-fpm.log(将 7.x 替换为你的 PHP 版本)记住这个对照:应用逻辑与业务错误,优先看 runtime/log/;Web 层的底层错误,优先看这里的系统日志。两者结合,排查效率会高很多。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8