不显示PHP错误

bee*_*ree 5 php apache error-reporting apache2

我已经把这个问题归结为问题并使其变得干净,以便你能更方便地帮助我.

我有一个非常简单的代码:

<?php
echo "Hello world";
?>
Run Code Online (Sandbox Code Playgroud)

这完全没问题.

如果我运行以下代码(解析错误)我没有收到任何错误,但仍显示文本"Hello world":

<?php
echo "Hello world";
piwejfoiwjefoijwef
?>
Run Code Online (Sandbox Code Playgroud)

如果我在代码之前放置解析错误但是不显示"Hello world":

<?php
piwejfoiwjefoijwef
echo "Hello world";
?>
Run Code Online (Sandbox Code Playgroud)

当我打印phpinfo(在同一个文件中,同一目录)时,我有以下设置:display_errors On display_startup_errors on error_reporting 1

如果我还尝试在脚本中设置错误报告并使用以下代码运行它,我仍然不会收到任何错误或警告但显示文本"Hello world":

<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE); ini_set('display_errors', '1');
echo "Hello world";
owieufpowiejf
?>
Run Code Online (Sandbox Code Playgroud)

我的php.ini文件具有以下值(我已重新启动Apache):

error_reporting = E_ERROR & ~E_DEPRECATED
display_errors = On
display_startup_errors = On
Run Code Online (Sandbox Code Playgroud)

我在Amazon AMI上使用64位AWS EC2运行Apache/PHP/MySQL.我不熟悉服务器配置.当我转换到亚马逊服务器时,错误开始了.除了错误报告,服务器和Apache/PHP运行完美.

请指导我如何解决问题.

谢谢!

Mad*_*iha 18

这是一个通知.

error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

揭示它.

我使用的代码:

<?php

    error_reporting(E_ALL); ini_set('display_errors', '1');
    echo "Hello world";
    owieufpowiejf

?>
Run Code Online (Sandbox Code Playgroud)

输出:

你好,世界

注意:使用未定义的常量owieufpowiejf - 在第5行的/ code/14B4LY中假定为'owieufpowiejf'

那是因为它不是解析错误,它认为它是一个常量并试图将其解析为字符串.放置普通字符串是一个有效的语句.

  • 这不适合我.不得不编辑php.ini. (2认同)