ThinkPHP的错误日志默认存储在项目的runtime/log目录下(如/var/www/html/your_project/runtime/log),文件名通常以日期命名(如20251018.log)。这些日志由框架自身生成,包含应用运行时的错误、异常、SQL执行失败等信息,是排查ThinkPHP问题的核心来源。
若ThinkPHP项目部署在Web服务器(如Nginx/Apache)或PHP-FPM环境中,系统层的错误日志也会记录相关问题:
/var/log/nginx/error.log(记录HTTP请求错误、PHP-FPM通信问题等);/var/log/apache2/error.log(若使用Apache作为Web服务器);/var/log/php7.4-fpm.log(或对应版本的PHP-FPM日志,记录PHP进程错误)。通过命令行工具可快速筛选、搜索ThinkPHP及系统日志中的错误信息:
tail -f /path/to/logfile(如tail -f /var/www/html/your_project/runtime/log/20251018.log),实时监控日志更新,便于捕捉即时错误;grep 'error' /path/to/logfile(如grep 'error' /var/www/html/your_project/runtime/log/20251018.log),筛选包含“error”“exception”等关键字的日志条目;awk '/error/ {count++} END {print count}' /path/to/logfile,统计指定时间段内的错误次数,快速判断问题严重程度;journalctl -u nginx(查看Nginx服务日志)或journalctl -u php7.4-fpm(查看PHP-FPM服务日志),结合ThinkPHP日志定位系统层问题。ERROR、WARNING、INFO),优先处理ERROR级别的日志(如数据库连接失败、SQL语法错误、类未找到等);Stack Trace),显示错误发生的文件、行号及调用流程,帮助快速定位代码问题;runtime/log中日志是否提示“Connection refused”“Access denied”等,结合数据库配置(application/database.php)验证用户名、密码、主机名是否正确;若ThinkPHP日志未明确错误原因,需结合系统层日志进一步排查:
systemctl status php7.4-fpm检查PHP-FPM状态,或netstat -tulnp | grep php验证端口监听情况;www-data),命令为sudo chown -R www-data:www-data /var/www/html/your_project;pdo_mysql、gd),可通过sudo apt-get install php-pdo php-mysql安装对应扩展。config.php或.env文件中设置APP_DEBUG = true,开启调试模式后,框架会输出更详细的错误信息(如变量值、堆栈跟踪),便于快速定位问题;config/database.php中开启SQL_DEBUG_LOG = true,记录所有执行的SQL语句及执行时间,帮助分析SQL性能问题或语法错误;logrotate工具定期压缩、删除旧日志(如保留最近30天),避免日志文件过大占用磁盘空间。