我要将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吗?
非常感谢任何帮助。
答案 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