我设计了一个新的joomla3网站。 在我的计算机上开发时,它工作正常。一旦我使用 akeeba备份和启动还原工具在共享主机上设置了它。报告以下错误:
Fatal error: Invalid opcode 153/1/8. in /home/myinnori/public_html/tawasr/libraries/joomla/filter/input.php on line 702
任何人都可以帮助我解决问题吗?
我已经尝试从我的主机帐户的"public_html"文件夹中启用".htaccess"文件中的每组变量。
更新:
line 701 // Convert decimal
line 702 $source = preg_replace_callback('/&#(d+);/m', function($m)
line 703 {
line 704 return utf8_encode(chr($m[1]));
line 705 }, $source
line 706 );
- 请在此处分享输入.php页面的源代码。
- 我认为您的问题是关于您的禁用或有限的图书馆共享虚拟主机 .
-
如果你有preg_replace功能,这是你的问题!php.net 和出于安全原因,许多共享主机都提供使用preg_replace_callback() 而不是 preg_replace(),但您可以共享输入.php源代码以获得更好的帮助
http://php.net/manual/en/function.preg-replace.php
特别鸣谢
好的,您应该在.htaccess文件中插入2行,如下所示:
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0
并将以下行添加到您的 httpd.conf 中(请联系您的托管支持中心)
<IfModule mod_php5.c>
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0
</IfModule>
来源 (forum.joomla.org)
关于 php 的内联函数存在问题。我的服务器上的 PHP 不支持具有回调的内联函数。我使用了preg_replace()而不是preg_replace_callback(),问题解决了。使用以下代码,只需将第二个参数保留为空字符串,如下面的代码
$source = preg_replace('/&#x([a-f0-9]+);/mi', "", $source
);