1

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

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

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

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

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

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

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

非常感谢任何帮助。

4

1 回答 1

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
于 2013-06-04T08:25:24.810 回答