ThinkPHP 在 Debian 的日志查看指南
一 定位 ThinkPHP 应用日志
- 默认路径:多数版本将日志写入项目的 runtime/log/ 目录,按日期组织,例如 runtime/log/2025-09-01.log;部分版本(如 5.0.x)常见为 runtime/log/YYYYMM/DD.log(如 runtime/log/202107/30.log)。若项目自定义了日志路径,以配置为准。
- 配置位置:框架日志由配置文件 config/log.php 控制,常见键包括 default(默认通道)、channels.file.path(日志目录,默认 runtime/log)、以及 level、max_files 等。
- 快速确认:在项目根目录执行以下命令定位实际日志目录与最新日志文件(注意替换为你的项目根路径):
- find . -type d -name log
- ls -lt runtime/log/ | head
以上路径与组织方式见 ThinkPHP 日志配置与文件命名说明。
二 查看与实时跟踪日志的常用命令
- 实时查看当天日志:tail -f runtime/log/$(date +%F).log
- 查看某一天的日志:tail -n 200 runtime/log/2025-09-01.log
- 按关键字过滤(如 SQL、支付、异常):
- grep -i “sql” runtime/log/$(date +%F).log
- grep -i “error|exception” runtime/log/$(date +%F).log | tail -n 50
- 分页查看:less runtime/log/$(date +%F).log
- 若日志按月份目录存放(如 5.0.x):tail -f runtime/log/$(date +%Y%m)/$(date +%d).log
- 提示:如目录或文件不存在,请先确认应用已产生日志,并检查 runtime/log 目录权限是否可写。
三 当应用日志为空时的排查路径
- 检查目录权限:确保运行 PHP 的用户(如 www-data)对 runtime 及子目录有写权限:
- chown -R www-data:www-data runtime
- chmod -R 0755 runtime
- 检查日志配置:打开 config/log.php,确认 default 通道为 file,且 channels.file.path 指向有效目录;如需输出到单文件可设置 single => true,或调整 level 以包含 error/info 等级。
- 触发一条日志:访问一个肯定会打日志的接口(例如在控制器中临时写入 Log::info(‘test’)),再查看日志是否出现。
四 与 Web 服务器和 PHP 错误日志的联动排查
- Web 服务器错误日志:
- Apache:tail -f /var/log/apache2/error.log
- Nginx:tail -f /var/log/nginx/error.log
- PHP 错误日志:查看 php.ini 的 error_log 配置项,常见路径为 /var/log/php_errors.log 或 /var/log/php/*/error.log;若开启到 syslog,可在 /var/log/syslog 中检索 PHP 相关错误。
- 系统级检索:在 /var/log/ 下使用 grep 检索关键字(如 php、fpm、think):grep -R “php” /var/log/ 2>/dev/null。