php错误日志由php.ini中log_errors=on和error_log=绝对路径共同决定,需重启web服务生效;phpmyadmin自身调试日志需单独在config.inc.php中配置savedir等参数。
phpmyadmin 本身不接管 php 错误日志路径,它只控制自己的调试日志;要看到真实错误(比如空白页),必须先让 php 把错误写进文件——这由 php.ini 的 error_log 和 log_errors 决定,不是 phpmyadmin 配置能改的。
确认 PHP 实际生效的 php.ini 路径
改错配置文件是日志不生成的最常见原因。LAMP 中 Apache + PHP-FPM 场景下,CLI 和 Web 请求用的 php.ini 完全不同:
- 访问任意 PHP 页面,输出
phpinfo(),查 “Loaded Configuration File” 行——这才是 Web 请求真正读的配置 - 宝塔用户直接看「网站 → PHP 设置 → 配置文件」路径;源码编译用户常见路径是
/usr/local/php/etc/php.ini或/etc/php/8.0/fpm/php.ini - 别改
/etc/php.ini或 CLI 版本的配置,它对网页请求无效
配对启用 log_errors 和 error_log
只设 error_log = /var/log/phpmyadmin_php_error.log 没用,必须同时打开记录开关:
-
log_errors = On(注意是字符串On,不是1或on) -
error_log = /var/log/phpmyadmin_php_error.log(必须是绝对路径) -
display_errors = Off(生产环境必须关,否则敏感信息可能泄露) - 确保目录存在且可写:
sudo mkdir -p /var/log/phpmyadmin && sudo chown www-data:www-data /var/log/phpmyadmin
phpMyAdmin 自身的调试日志要单独配
这是另一套机制,用于记录 SQL 执行、登录行为等,和 PHP 错误日志无关:
- 编辑 phpMyAdmin 根目录下的
config.inc.php - 添加三行(路径需提前创建并授权):
$cfg['Debug'] = true;$cfg['SaveDir'] = '/var/log/phpmyadmin/';$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp/'; -
SaveDir必须是 Web 进程可写目录,否则日志写不进去;TempDir不配会导致导入导出失败 - 日志文件名固定为
phpmyadmin.log,内容是纯文本带时间戳,例如[2024-05-12 14:22:03] SQL: SELECT * FROM users;
最容易被忽略的是:PHP 错误日志和 MySQL 错误日志完全独立,log_error(MySQL)和 error_log(PHP)不能混用;改完 php.ini 后必须重载 PHP-FPM 或重启 Apache,否则修改只是躺在文件里。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











