我正在尝试在我的本地Drupal 7
计算机上安装debian jessie
,它告诉我以下内容:
PHP中的多字节字符串输入转换是活动的,必须是 禁用。检查php.ini mbstring.http_input设置。请参考 有关更多信息,请参阅PHP mbstring文档。
好的,所以我转到php documentation linked in that message,它为我提供了很多(有帮助的,我确定)与禁用“多字节字符串输入转换”相关的信息。如果它在那里,我没有找到它。
我用Google搜索并提出了a thread on drupal.org,声称:
因为Drupal必须禁用mbstring.http_input及其 “亲戚”,关于Drupal安装的很多抱怨被提出来了 在网络空间无处不在。如果你拥有自己的,这不是问题 服务器,有很多解决方法。
provides a link到我在.htaccess
文件中添加以下内容的页面:
php_value mbstring.http_input pass
php_value mbstring.http_output pass
所以我查看了我的.htaccess
文件,发现了这个:
# PHP 5, Apache 1 and 2.
<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>
是的,那么现在呢?
编辑:刚刚将以下行添加到我的php.ini文件中:
mbstring.http_input = pass;没有转换。
然后跑service apache2 reload
。没效果。
答案 0 :(得分:6)
在我的php.ini
文件中添加了以下内容:
mbstring.http_input = pass ;
mbstring.http_output = pass ;
然后我跑了
sudo service apache2 reload
然后我可以手动安装drupal,但是,如果我尝试使用drush
我仍然会收到错误,所以这只是解决方案的一半......
答案 1 :(得分:3)
相反,您可以修改网站的.htaccess
文件或settings.php
文件。
这样,您的网站与您的drush配置之间不会发生任何冲突。如果您将来更改了服务器的php版本,则不必对新版本的php.ini
文件重新进行相同的更改。
通过.htaccess
:
php_value mbstring.http_input pass
php_value mbstring.http_output pass
或通过settings.php:
ini_set('mbstring.http_input', 'pass');
ini_set('mbstring.http_output', 'pass');
答案 2 :(得分:1)
对我来说,安装php-mbstring
模块有助于解决此错误。
答案 3 :(得分:0)
安装drupal演示时出现同样的错误 但我意识到该网站没有.htaccess文件 我把一个复制到网站上 问题消失了
答案 4 :(得分:0)
要在不禁用mbstring的情况下禁用mbstring函数重载,必须使用
mbstring.func_overload = 0
这可以在php.ini文件中设置,如果没有在vhost设置或.htaccess中设置。
如果不起作用,请尝试查找mbstring.ini文件,例如在/etc/php.d/mbstring.ini中。这将在php.ini之后加载,并将覆盖那里设置的任何值。
您可能还需要添加以下内容,但这已在Drupal的htaccess文件中设置,因此如果正确加载此文件,则不应进行任何更改。
php_value mbstring.http_input pass
php_value mbstring.http_output pass
答案 5 :(得分:0)
在 php.ini 文件中取消注释extension=php_mbstring.dll
并重新启动apache
答案 6 :(得分:0)
Drupal 要求您启用 mbstring(多字节字符串),但您的默认 php 设置已禁用此选项。如果您可以更改 php.ini 文件以启用此功能,那么您的问题将得到解决,但有时我们无法访问该文件。
相反,我们可以将 drupal 设置为仅针对此特定站点启用此选项。在您的 sites/default/settings.php 文件(或您可能正在使用的相应副本)上,添加以下内容:
ini_set('mbstring.http_input', 'pass');
ini_set('mbstring.http_output', 'pass');
并重新加载您的 php
这将为这个特定的 Drupal 站点设置 mbstring 选项。如果这仍然失败,则可能是您服务器的 php 根本没有安装 mbstring。在浏览器中运行 phpinfo() 并搜索 mbstring 部分。如果你根本没有找到,那么你需要安装它或请服务器管理员为你做