【发布时间】:2016-12-26 12:36:36
【问题描述】:
我最近将一个项目从 Apache 和 PHP5 转移到了 nginx 和 PHP7。在调试我的应用程序时,我注意到 ini_set 不再工作了,至少对于以下设置。
ini_set( 'display_errors', 'On' );
ini_set( 'log_errors', 'On' );
ini_set( 'error_log', __DIR__ROOT . 'var/log/main-errors.log' );
'On'、'on'、1、'1' 和 true 都不起作用。 ini_get_all() 在调用 ini_set() 之前和之后给出相同的结果。
我知道我可以在池配置文件中更改这些设置,但我只需要为特定部分启用display_errors,并且应用程序的 API 部分使用相同的池,但必须登录到单独的文件.
有什么方法可以在不更改池/nginx 配置文件的情况下使用ini_set()?或者这应该有效吗?这是一个错误吗?
然而,以下设置似乎适用于ini_set():
ini_set( 'memory_limit', '256M' );
ini_set( 'session.save_path', $sessionSettings['save_path'] );
ini_set( 'zlib.output_compression', 'On' );
ini_set( 'zlib.output_compression_level', '3' );
【问题讨论】:
-
这个类似问题的答案中的链接可能会对您有所帮助stackoverflow.com/questions/12103807/… 或者在
ini_set nginx fpm上进行简单的谷歌搜索将为您提供大量阅读内容 -
我也看到了这个问题,但它并不相似,因为我尝试设置的设置是
PHP_INI_ALL设置,而不是像这个问题中的PHP_INI_SYSTEM或PHP_INI_PERDIR。当然,我已经在 Google 上搜索过了,但我找不到这个特定设置的解决方案。 -
但是允许从 php 脚本更改设置的链接可能有用
-
它说“
display_errors指令是PHP_INI_ALL,因此它可以设置在任何地方,包括ini_set()”,所以我会说它应该可以工作。