与大多数人的问题相反,我无法让 PHP 停止显示错误,我已在 php.ini 中将 display_errors 设置为关闭,但它仍然显示它们,我也尝试了 .htaccess 和内联 ini_set 和 error_reporting 变量,但错误仍然显示。
我该怎么做才能防止这种覆盖?
Mac OS X Lion Server 10.7.1 MAMP 使用 DIY Mac Server (diymacserver.com) 的说明进行编译
更新:
这是我的 php.ini 文件存储的地方...
这是运行时我的 display_errors 设置的值
这是在 /etc/php.ini 中写入的复制粘贴值
display_errors = Off
答案1
确保您编辑了正确的 php.ini 文件,因为有两个 ini 文件,一个用于 apache,一个用于 CLI。
答案2
我最近遇到了类似的行为,发现 php.ini 布局相当混乱:默认值等的列表位于文件顶部,而设置的描述和设置本身则位于更下方。(见php 7 忽略 ini 文件,但声称加载)。
- 稍后的设置可能会覆盖您的设置。浏览或搜索 ini 文件中所有出现的“display_errors”:
grep -n display_errors/etc/php.ini
- “已加载的配置文件”的值是什么?
答案3
该display_errors
指令可以在运行时使用以下方式更改ini_set功能。确保没有任何代码会重新打开错误显示。
此外,当您更新 php.ini 设置时,请确保重新启动 Apache。
答案4
值得记住的是,即使您不显示或记录错误,它们仍然会对吞吐量和性能产生很大影响。
最明显的 3 个原因是:
1)您正在更改错误的 php.ini 文件(您已经解决了)。
2) php.ini 设置在其他地方被覆盖 - 如果这是 mod_php,那么可能在 httpd.conf 文件或 .htaccess 中
3)你在进行更改后没有重新启动 PHP 进程(当我们谈论 mod_php 时是 httpd)