即使在 php.ini 中使用 display_errors = On,PHP 也没有错误

Posted

技术标签:

【中文标题】即使在 php.ini 中使用 display_errors = On,PHP 也没有错误【英文标题】:No Errors in PHP even with display_errors = On in php.ini 【发布时间】:2017-08-25 18:42:07 【问题描述】:

我正在 Vagrant(Ubuntu 16.04、Apache2、php7)中设置 LAMP 堆栈,而 PHP 没有显示任何错误。我有以下应该返回错误的文件:

This is a PHP File
<?php thisisnotafunction(); ?>
<?php echo date("ThisIsAnInvalidArgument"); ?>

其他 Stack Overflow 帖子(post 1、post 2、post 3)指出我需要更改 php.ini 文件以显示错误。

运行$ sudo find / -name php.ini 返回:

/etc/php/7.0/apache2/php.ini
/etc/php/7.0/cgi/php.ini
/etc/php/7.0/cli/php.ini

我进入每一个并设置display_errors = On,重新启动apache2,但仍然没有错误。但是,将以下内容添加到我的 index.php 文件确实会显示错误:

<?php
    error_reporting( E_ALL );
    ini_set( "display_errors", 1 );
    require_once( "sample.php" );
?>

index.php 现在返回:

This is a PHP File 
Warning: require_once(sample.php): failed to open stream: No such file or directory in /var/www/html/index.php on line 6

Fatal error: require_once(): Failed opening required 'sample.php' (include_path='.:/usr/share/php') in /var/www/html/index.php on line 6

很明显,我的 PHP 设置知道如何处理错误。

【问题讨论】:

Apache 指令可以设置或取消设置此标志,ini 可能不是您安装使用的那个(也不必称为 php.ini,php7 可以读取 inis 的目录等)等) 【参考方案1】:

使用php --ini 命令将显示您使用配置文件。

【讨论】:

这确认了 PHP 使用的是哪个 ini 文件。谢谢。此外,对于其他正在寻找答案的人,事实证明 display_errors 在 php.ini 中出现 三次(通常两次,一次作为评论)。

以上是关于即使在 php.ini 中使用 display_errors = On,PHP 也没有错误的主要内容,如果未能解决你的问题,请参考以下文章

显示PHP错误消息,即使在php.ini文件

即使更新了 php.ini 也内存不足

即使我编辑了 php.ini 并且 php_ldap.dll 在正确的位置,也无法启用 PHP LDAP?

即使在调整 php.ini 后,允许的 *** 字节内存大小也会耗尽

php.ini mysqli.allow_persistent 即使在 php 重启后也不会关闭

即使更改了 php.ini 文件,文件也太大而无法上传到服务器