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

PHP 7 Script not display errors, or writing them to the log

提问人:Brian Leishman 提问时间:6/17/2017 更新时间:6/17/2017 访问量:1053

问:

我一直在尝试将一些超级旧的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++;
}

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

还有什么可以尝试的?

php .htaccess 错误报告

评论

0赞 Darrell Ulm 6/17/2017
/var/log/apache2/error.log是否为空,权限是什么?
0赞 arkascha 6/17/2017
如果该日志文件确实为空,则该文件是错误的。
0赞 Brian Leishman 6/17/2017
@DarrellUlm 它不是空的,我注意到成功工作的错误进入了日志文件,但未在任何地方显示的错误也没有显示在该日志文件中,但日志文件显然正在处理同一脚本中的工作错误

答:

-1赞 f b 6/17/2017 #1

E_ALL是不够的。

用:

error_reporting(-1);为了所有人和未来(仍未实现的功能)在开发环境中!

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

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

主脚本是否包含任何 ats “@” -> @functionToCall() 来压制任何内容?