这是两个不同的PHP文件的故事。
文件1来源:
<?php $null->test();
文件1输出:
致命错误:在一个非对象中调用成员函数test()
/wwwroot/sites/example.com/public/fatal.php在第1行
这也打印到/var/log/php-fpm/www-error.log(在我的www.conf中定义)
文件2:
class A {} function test(A $obj) { echo 'here...'; } var_dump('started'); $a = new A(); test($a); var_dump('this is going to error out'); test($null); var_dump('do we get here?');
文件2输出:
string“开始”(长度= 7)
这里…
string“这将会出错”(长度= 26)
没有错误logging。
/etc/php-fpm.d/www.conf中的相关设置:
catch_workers_output = yesphp_flag [display_errors] =开启
php_flag [display_startup_errors] =开启
php_admin_value [error_reporting] = 1
php_admin_value [error_log] = /var/log/php-fpm/www-error.log
php_admin_flag [log_errors] =开
php_admin_value [memory_limit] = 128M
有任何想法吗?
php_admin_value[error_reporting] = 1
值1表示只有E_ERRORtypes的错误。 您的代码会生成E_RECOVERABLE_ERROR 。