在.user.ini中忽略了PHP mbstring.func_overload

时间:2014-03-12 22:25:48

标签: php .htaccess

我的php.ini中有mbstring.func_overload = 7,我需要为一个目录设置为0。我发现在使用PHP时通过mod_fcgid我不能使用.htaccess,就像我在Debian安装中那样。

我在我想要将此设置设置为0的目录中创建了一个.user.ini,并且我还放置了一个包含phpinfo()的test.php;在同一目录中的行,以查看此.user.ini是否生效。

除了我想要改变的上述设置之外,我还在这个.user.ini文件中添加了一些其他的PHP设置,我不会留在那里,只是要注意事情是否真的发生了变化。

我的.user.ini:

post_max_size = 12M
upload_max_filesize = 128M

[Date]
date.timezone = "UTC"

[mbstring]
mbstring.language = German
mbstring.func_overload = 0

奇怪的是:在请求test.php文件时,所有上述设置都被接受并显示在我的.user.ini中,因为" local"设置,除了一个:mbstring.func_overload对于本地和全局配置仍然是7。

enter image description here

任何提示为什么忽略mbstring.func_overload而我的.user.ini中的其他PHP设置工作正常?

1 个答案:

答案 0 :(得分:1)

我有同样的问题。我可以在.user.ini中更改任何mbstrings-settings,但不能更改mbstring.func_overload。

UPD:我发现了一个原因 - 在.user.ini中无法重新定义mbstring.func_overload,因为状态为PHP_INI_SYSTEM。

This setting can only be changed from the php.ini file.

解。在nginx.conf中添加以下行:

`

location ~ \.php$ {
        fastcgi_param PHP_VALUE "date.timezone='Europe/Berlin'
        mbstring.func_overload=2
        memory_limit=1024M";
        ...another fastcgi-options...
    }

`

相关问题