我最近从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部分使用相同的池,但必须记录到一个单独的文件。
有没有办法使用ini_set()
不改变池/nginx配置文件?或者这应该工作,这是一个bug吗?
然而,以下设置似乎与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' );
另一个可能的原因。任何在php-fpm配置中指定为"php_admin_value"或"php_admin_flag"的值不能被覆盖。
你phpinfo ();输出将显示这些配置文件在系统中的位置。
我有一个类似的问题,ini_set不工作。显然,php.ini在disabled_functions指令中有ini_set。因此,在更改ini_set之前,它将无法工作。