2

我最近搬到了一个非托管 VPS 并将 Joomla 组件添加到客户端网站,并在尝试使用组件的特定部分时收到以下错误。

致命错误:在第 135 行的 /home/oursite/public_html/components/com_rsfiles/helpers/files.php 中调用未定义函数 mb_strtolower()

我确定如果这是在共享机器上,则不会引发错误,因为他们会将服务器配置为接受它。但这不是我的情况。我必须配置它才能工作。

最初的错误让我确定是否在我们的服务器上启用了 mbstring,但事实并非如此。在此处输入图像描述

所以我想知道如何启用它。谷歌了!发现它可能是 php.ini 文件的派生文件,所以我尝试使用这个 php.ini 定义来启用它。zend.multibyte = 1。添加该行后,我重新启动了 Apache Web 服务器,但 php 信息页面仍然显示它已禁用。:-(

在进行上述修改后,我在尝试访问同一页面时收到了一个不同的错误,引发了原始错误。这是新的错误:

致命错误:无法将脚本从检测到的编码“UTF-8”转换为第 609 行 /home/psgadmincore/public_html/libraries/legacy/controller/legacy.php 中的兼容编码

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

我取消了所有这些认为它们也必须启用的注释,但是返回了“无法转换脚本”错误。

有人可以指导我使用概述包含“多字节字符串库”所需步骤的程序吗?

CENTOS 6.7 x86_64 virtuozzo w/Cpanel - php 5.4.33

这些网站对我没有帮助:http: //php.net/manual/en/ref.mbstring.php http://php.net/manual/en/ini.core.php#ini.zend.multibyte

谢谢

4

1 回答 1

1

在@ceejayoz 响应之后,我虽然会将 php 构建升级到 5.6。我在 WHM 中使用 EasyApache 来执行以下过程。在升级过程中,我能够在详尽的选项列表中选择 mbstring 模块。

  1. 以“root”用户身份登录 WHM。在查找框中键入简单。点击
  2. EasyApache(Apache 更新)。保留默认值,然后单击齿轮图标(自定义配置文件)。
  3. 保留默认值,然后单击下一步。
  4. 单击详尽的选项列表。(这是我选择 mbstring 模块的地方)
  5. 单击 Apache 或 PHP 模块的名称,然后单击保存并构建。
于 2015-09-29T23:02:25.860 回答