如何打开PHP错误仅在子文件夹上显示
我不希望错误显示 /html,但我希望它们显示在 .一切都已设置好,因此根本不会显示错误。我如何让错误只显示在该文件夹(及其子文件夹)中?PHP
/html/beta/usercomponent
我不希望错误显示 /html,但我希望它们显示在 .一切都已设置好,因此根本不会显示错误。我如何让错误只显示在该文件夹(及其子文件夹)中?PHP
/html/beta/usercomponent
在:.htaccess
php_value error_reporting 2147483647
根据文档,这个数字应该启用“所有”错误,无论版本如何,如果你想要一个更精细的设置,手动或值在一起,或者运行
php -r 'echo E_ALL | E_STRICT ;'
让 php 为您计算值。
你需要
AllowOverride All
在 apaches 主配置中启用 .htaccess 文件。
有关此内容的更多阅读信息,请点击此处:
通知如果您使用的是Php-CGI而不是mod_php,则可能无法像宣传的那样工作,并且您将得到的只是内部服务器错误,并且除了在每个脚本的基础上在站点范围内启用它之外,您将没有太多选择
error_reporting( E_ALL | E_STRICT );
或在错误发生之前进行类似的构造。
我的建议是禁止向用户显示错误,并大量利用php error_log功能。
display_errors = 0
error_logging = E_ALL | E_STRICT
error_log = /var/log/php
如果您遇到太嘈杂的问题,这不是您需要有选择地删除错误报告的迹象,这是有人应该修复代码的迹象。
@Roger
是的,您也可以在apaches配置的构造中使用它,但是,在这种情况下,.htaccess是等效的,并且使其更具可移植性,特别是如果您有同一代码库的多个工作签出副本,并且您希望将此更改分发给所有这些副本。<
Directory>
如果您有多个虚拟主机,则需要在相应的虚拟主机定义中使用构造,否则,是的
<Directory /path/to/wherever/on/filesystem>
<IfModule mod_php5.c>
php_value error_reporting 214748364
</IfModule>
</Directory>
附加的“ifmodule”命令只是一个安全网,所以如果你没有mod_php,apache的上述问题就不会发生。
最简单的方法是从 .htaccess 文件控制错误报告。但这是假设您使用的是 Apache,并且 /html/beta/usercomponent 中的脚本是从该目录调用的,而不是从其他地方调用的。
.htacess
php_value error_reporting [int]
您必须按照error_reporting文档中的说明从列表中自己编写整数值,因为当Apache解释.htaccess时,不会定义E_ERROR等常量。
这是一个简单的按位标志,因此例如,值 12 将为 E_WARNING + E_PARSE + E_NOTICE。