How to fix the php 5.6 mbstring issue in Centos 6.7?

ぃ、小莉子 提交于 2019-12-11 09:55:45

问题


I've been running a Drupal 7 site on Centos 6.7 and php 5.3, and have finally gotten around to updating php to 5.6.20. The update went well; the only problem I'm hitting is that I'm getting log messages about mbstring.http_input (and mbstring.http_output) being deprecated:

PHP Deprecated: Unknown: Use of mbstring.http_output is deprecated in ...

I've seen no shortage of articles (e.g., MAMP: php.ini - mbstring.http_input - Disabling for Drupal) talking about how the solution is to get:

php_value mbstring.http_input pass
php_value mbstring.http_output pass

into my apache configuration or into the Drupal settings.php file with ini_set(). But I seem to have done that: the apache config file for the site contains:

<IfModule mod_php5.c>
  php_flag magic_quotes_gpc                 off
  php_flag magic_quotes_sybase              off
  php_flag register_globals                 off
  php_flag session.auto_start               off
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_flag mbstring.encoding_translation    off
</IfModule>

and phpinfo.php reports, in the mbstring section, that mbstring.http_input and mbstring.http_output have local values of "pass", as (I guess) they're supposed to. Meanwhile, I've found one Drupal patch that is meant to keep Drupal from complaining, but I'm still getting the PHP messages in the system log.

I must be doing something wrong; can anyone tell what it is? Thanks!


UPDATE 4/1/2016:

I found that just a simple call to phpinfo() would trigger the log messages, but only when the call came from inside the site -- I have another, non-Drupal site with a phpinfo page/call in it, and calling it did NOT produce the log messages. I then tried removing the mbstring references from the Drupal site's apache config, to look like this:

<IfModule mod_php5.c>
  php_flag magic_quotes_gpc                 off
  php_flag magic_quotes_sybase              off
  php_flag register_globals                 off
  php_flag session.auto_start               off
</IfModule>

...and the log messages are gone. I also hacked drupal_convert_to_utf8() to make sure mb_convert_encoding() won't be called.

So, yay? Have I done something that will bite me in the future, or is this a valid adjustment to the site? Or something in between?

来源:https://stackoverflow.com/questions/36339175/how-to-fix-the-php-5-6-mbstring-issue-in-centos-6-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!