ubuntu中thinkphp日志如何查看
Ubuntu下查看ThinkPHP日志的实用方法 说到在 Ubuntu 下排查 ThinkPHP 的问题,很多人会先翻框架手册,其实最直接的办法是看日志。不过日志藏在哪里、怎么快速查看,确实有不少细节值得捋一捋。 定位日志目录 默认情况下,框架的日志会全部落入 runtime/log/ 这个目录里。
Ubuntu下查看ThinkPHP日志的实用方法

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


































