PHP 7脚本不显示错误,或将它们写入日志

时间:2017-06-16 22:02:45

标签: php .htaccess error-reporting

我一直在试图将一些超级旧的PHP脚本移植到PHP 7.0,这证明是不可能的,因为我无法弄清楚错误是什么!如果我实现了某种语法或解析错误,脚本很乐意向我展示这些,但是当我尝试调用lkasjdfalkjshdfasdF();时,我无法得到任何错误告诉我我的函数是未定义的(显然未设置)

我尝试过的事情:

这是我的.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++;
}

所以我可以确保脚本在我怀疑的地方失败了,但老实说,这些信息并没有真正帮助我。

还有什么可以尝试的?

1 个答案:

答案 0 :(得分:-1)

E_ALL是不够的。

使用:

error_reporting(-1); //开发环境中的所有和未来(仍然没有补充的功能)!

你真的在正确的主机上运行吗?

  • 可能是存储到其他错误日志的虚拟主机吗?

主脚本是否有任何ats“@” - > @functionToCall()包含了什么??