电话
400 9058 355
PHP错误日志需同时启用log_errors=On和设置有效error_log路径,确认CLI与Web环境各自生效的php.ini位置,重启对应服务并关闭display_errors以保障安全。
PHP 安装后默认通常不记录错误日志,error_log 为空或指向 /dev/null,导致线上问题无法排查。必须手动修改 php.ini 并确认生效位置,否则改了也白改。
很多人直接去改 /etc/php/8.1/apache2/php.ini 或 C:\php\php.ini,但 PHP CLI 和 Web(如 Apache/Nginx)可能加载不同配置文件,且重启服务后也不一定生效。
php --ini 查看 CLI 模式下加载的配置路径info.php,内容为 ,访问后搜索 Loaded Configuration File 行php-fpm 进程加载的 php.ini,不是 Nginx 的配置log_errors = Off 是默认值,即使设置了 error_log = /var/log/php_errors.log,错误也不会写入——这是最常被忽略的组合开关。
log_errors = On
error_log = /var/log/php_errors.log(Linux)或 error_log = C:\php\logs\php_errors.log(Windows)www-data、nginx 或 IIS_IUSRS)有写权限error_log = syslog 除非你真在用 rsyslog —— 它不生成可读文件,新手容易误判“没日志”display_errors = On 会把错误直接输出到浏览器,暴露路径、变量、数据库结构,属于严重安全隐患。
display_errors = On + error_reporting = E_ALL
display_errors = Off,只靠 error_log 记录error_log 只捕获 PHP 解析级错误(如语法错、内存溢出),业务异常走框架日志PHP 配置不是热加载。改完不重启,等于没改。
sudo systemctl restart apache2(Debian/Ubuntu)或 httpd -k restart(CentOS)sudo systemctl restart php8.1-fpm(版本号按实际替换)which php)echo $undefined_var;),然后 tail -f /var/log/php_errors.log 看是否追加内容真正卡住人的从来不是“怎么写配置”,而是搞不清哪个 php.ini 在起作用、权限没给对、或者忘了关 display_errors 就以为“日志没出来”。多查一次 phpinfo(),比重装 PHP 更快解决问题。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...