PHP 7脚本不显示错误,或将它们写入日志
问题描述:
我一直在抨击我的头,试图将一些超级旧的PHP脚本移植到PHP 7.0,这被证明是不可能的,因为我无法弄清楚错误是什么!如果我执行某种语法或解析错误,脚本会高兴地向我展示这些内容,但我无法获得任何错误,告诉我当我尝试调用lkasjdfalkjshdfasdF();
(显然未设置)时,我的函数未定义。PHP 7脚本不显示错误,或将它们写入日志
事情我已经尝试:
这是我.htaccess
文件在同一目录作为我的脚本
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_value error_log "/var/log/apache2/error.log"
我也有这个在我的脚本的顶部
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
如果我在我的一行上添加了echho 'test';
,它会在页面上显示以下内容,并在错误日志中显示
Parse error: syntax error, unexpected ''test'' (T_CONSTANT_ENCAPSED_STRING) in /domains/stupidphpscripts.com/public_html/lib/dumbfile.php on line 200
如果我在我的一行上添加echo asdfasdf();
,我没有输出,并且错误日志中没有任何内容。
我甚至写了这个愚蠢的功能
$DebugPointCointer = 0;
function DebugPoint() {
global $DebugPointCointer;
echo "Debug point $DebugPointCointer on line " . debug_backtrace(1)[0]['line'] . "\n";
$DebugPointCointer++;
}
所以,我可以确保该脚本是失败,我怀疑,但在所有诚实,这些信息并没有真正帮助我。
还剩什么可尝试?
答
E_ALL是不够的。
使用:
error_reporting(-1);
//所有与未来(至今仍枝繁叶茂inplemented功能)的开发环境!
你真的在正确的主机上运行吗?
- 可能是存储到不同错误日志的虚拟主机?
主脚本是否有任何ats“@” - > @functionToCall()包含哪些东西?
/var/log/apache2/error.log为空,并且权限是什么? –
如果该日志文件真的是空的,那就是错误的文件。 – arkascha
@DarrellUlm它不是空的,我注意到的错误工作成功进入日志文件,但没有显示在任何地方的错误也没有显示在该日志文件中,但日志文件显然与工作错误在同一个脚本中 –