PHP 5.4 - CodeIgniter - PCRE库在共享托管中的问题解决方法

时间:2013-06-04 08:12:07

标签: php cpanel pcre shared-hosting

我要将codeigniter项目从我的计算机移动到公共服务器(其中安装了Cpanel的虚拟专用服务器)。

在公共服务器中我收到错误:

Message: preg_match(): Compilation failed: unknown option bit(s) set at offset 0

您可以查看here
在检查了一些其他相关问题后,我可以看到它是因为虚拟专用服务器使用的PCRE库太旧或者没有utf-8支持。
PCRE使用的版本是7.8。 要查看我的虚拟服务器的phpinfo,请单击phpinfo here

现在,我知道我可以通过重建pcre,php等来解决这个问题。但是我的老板坚持使用这个注册的虚拟服务器,这只给了我有限的权限。只有CPANEL帐户和FTP才能上传/删除文件

所以问题是:
- CodeIgniter是否必须启用此PCRE才能运行?
- 是否有任何其他解决方法使其在服务器中运行?

我已经联系了支持人员,他们说,他们的CPanel目前只支持PCRE版本7.8。我很困惑,这与Cpanel有什么关系?是不是应该重建PCRE库并让php配置直接到它?我的意思是Cpanel只有GUI吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我建议你编辑/system/core/Utf8.php文件。

在第44行,将@放在preg_match前面。

这至少应该抑制错误消息并允许脚本继续。

原件:

    function __construct()
    {
        log_message('debug', "Utf8 Class Initialized");

        global $CFG;

        if (
            preg_match('/./u', 'é') === 1                   // PCRE must support UTF-8

修改:

    function __construct()
    {
        log_message('debug', "Utf8 Class Initialized");

        global $CFG;

        if (
            @preg_match('/./u', 'é') === 1                  // PCRE must support UTF-8