如何在PHP 5.4.33 Apache服务器上启用mbstring?
I recently moved to an unmanaged VPS and added a Joomla component to a client website and received the following error when attempting to use a specific part of the component.
我最近转移到一个非托管VPS并将一个Joomla组件添加到客户端网站,并在尝试使用该组件的特定部分时收到以下错误。
Fatal error: Call to undefined function mb_strtolower() in /home/oursite/public_html/components/com_rsfiles/helpers/files.php on line 135
致命错误:在第135行的/home/oursite/public_html/components/com_rsfiles/helpers/files.php中调用未定义的函数mb_strtolower()
I'm sure if this was on a shared machine the error would not have been thrown because they would have configured the server to accept it. But that is not my case. I have to configure it to work.
我确定如果这是在共享计算机上,则不会抛出错误,因为他们会将服务器配置为接受它。但那不是我的情况。我必须配置它才能工作。
The original error lead me to identify if mbstring was enabled on our server and it was not.
原始错误导致我确定我们的服务器上是否启用了mbstring,而不是。
So I wondered how I could enable it. Googled it! found it may be a derivative of the php.ini file so I tried to enable it using this php.ini definition. zend.multibyte = 1. After adding the line I restarted the Apache web server but the php info page still showed it disabled. :-(
所以我想知道如何启用它。用Google搜索它!发现它可能是php.ini文件的衍生物,所以我尝试使用这个php.ini定义启用它。 zend.multibyte = 1.添加行后,我重新启动了Apache Web服务器,但php信息页面仍显示已禁用。 :-(
After making the above modification I received a different error when attemoting to access the same page throwing the original error. This is the new error:
进行上述修改后,我在访问同一页面时收到了一个不同的错误,抛出了原始错误。这是新错误:
Fatal error: Could not convert the script from the detected encoding "UTF-8" to a compatible encoding in /home/psgadmincore/public_html/libraries/legacy/controller/legacy.php on line 609
致命错误:无法将脚本从检测到的编码“UTF-8”转换为第609行/home/psgadmincore/public_html/libraries/legacy/controller/legacy.php中的兼容编码
There are 8 other mbstring items in the php.ini file but they are all commented out.
php.ini文件中还有8个其他mbstring项,但它们都被注释掉了。
;mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http.output = SJIS
;mbstring.encoding_translation = On
;mbstring.detect_order = auto
;mbstring.substitute_character = none
;mbstring.func_overload = 0
; mbstring.func_overload = 0
I un-commented all of these thinking they had to be enabled also, but the "Could not convert the script" error is returned.
我没有评论所有这些想法,他们也必须启用,但返回“无法转换脚本”错误。
Can someone please direct me to a procedure that outlines the steps necessary to include the "Multibyte String library"?
有人可以指导我一个程序,概述包含“多字节字符串库”所需的步骤吗?
CENTOS 6.7 x86_64 virtuozzo w/Cpanel - php 5.4.33
CENTOS 6.7 x86_64 virtuozzo w / Cpanel - php 5.4.33
These sites have not help me: http://php.net/manual/en/ref.mbstring.php http://php.net/manual/en/ini.core.php#ini.zend.multibyte
这些网站没有帮助我:http://php.net/manual/en/ref.mbstring.php http://php.net/manual/en/ini.core.php#ini.zend.multibyte
Thank you
谢谢
1 个解决方案
#1
1
After @ceejayoz response I though I would upgrade the php build to 5.6. I used EasyApache in the WHM to carry out the process below. During the upgrade I was able to select mbstring module in the Exhaustive Options List.
在@ceejayoz响应后我虽然我会将php版本升级到5.6。我在WHM中使用EasyApache来执行下面的过程。在升级过程中,我能够在穷举选项列表中选择mbstring模块。
- Log in to WHM as the 'root' user. In the Find box type easy. Click
- 以“root”用户身份登录WHM。在“查找”框中键入easy。点击
- EasyApache (Apache Update). Leave default, and then click the gear icon (Customize Profile).
- EasyApache(Apache更新)。保留默认值,然后单击齿轮图标(自定义配置文件)。
- Leave default, and then click Next Step.
- 保留默认值,然后单击“下一步”。
- Click Exhaustive Options List. (this is where I selected the mbstring module)
- 单击“穷举选项列表”。 (这是我选择mbstring模块的地方)
- Click the name of the Apache or PHP module, and then click Save and build.
- 单击Apache或PHP模块的名称,然后单击“保存并生成”。
更多相关文章
- php穷举思维探究百钱白鸡问题
- PHP实现接口方法时出现致命错误
- JSON解析错误:无法识别的标记'<'处于角度
- 在提交注册表单时使用jQuery显示错误
- 获取所有网站的错误,[重复]
- 如何让jQuery ajax执行错误功能
- Yii 访问 Gii(脚手架)时出现 403 错误
- PHP强大包括处理错误?
- 您是否认为PHP中的错误形式是在类方法中访问超级全局变量?