我尝试使用PHP 5.6运行我的Joomla 1.x网站并遇到以下错误:
严格标准:KHttpUri :: set()的声明应与/home/beauty/www/libraries/koowa/http/uri.php中的KObject :: set($ property,$ value = NULL)兼容0 严格标准:KHttpUri :: get()声明应与第0行/home/beauty/www/libraries/koowa/http/uri.php中的KObject :: get($ property = NULL,$ default = NULL)兼容 严格标准:非静态方法JLoader :: register()不应在第19行的/home/beauty/www/libraries/joomla/cache/cache.php中静态调用 严格标准:JCacheStorage :: get()的声明应与第0行/home/beauty/www/libraries/joomla/cache/storage.php中的JObject :: get($ property,$ default = NULL)兼容 严格标准:非静态方法JLoader :: register()不应在第19行的/home/beauty/www/libraries/joomla/document/document.php中静态调用 严格标准:非静态方法JLoader :: import()不应在第186行的/home/beauty/www/libraries/loader.php中静态调用 严格标准:非静态方法JLoader :: import()不应在第186行的/home/beauty/www/libraries/loader.php中静态调用 致命错误:已在第95行/home/beauty/www/plugins/content/listitems.php中删除了通话时传递号码
之前使用PHP 5.3(在Ubuntu 12.X LTS上)网站运行良好,所以这可能与兼容性PHP 5.3 / 5.6有关。
有谁知道它是什么?这可以与哪些PHP扩展相关?
答案 0 :(得分:0)
修补这样一个旧的Joomla版本并使用php 5.6运行它是毫无意义的。 Joomla 1.5.x与PHP 5.4和5.6不兼容;它虽旧但仍然可用:docs.joomla.org/Joomla_1.5_won't_work_on_PHP_5.4。然而,图书库koowa不是Joomla本身的一部分;您可以重命名类的声明,将所有被称为静态的函数(即JLoader :: register())重命名为静态函数等。但您仍在使用不安全的旧库/插件/组件和Joomla版本。也许你已经改变了其他地方的错误报告(.htaccess),你应该看看http://php.net/manual/en/appendices.php。您最好将您的网站迁移到最新的Joomla3.7.4和PHP7 ......
顺便说一句,Call-time pass-by-reference has been removed in /home/beauty/www/plugins/content/listitems.php on line 95
可以像PHP 5.4 Call-time pass-by-reference - Easy fix available?一样解决,通常函数调用在没有@的情况下工作。还请指定Joomla的确切版本(在您的问题中),介于1.0和1.5以及1.7之间是巨大的差异!
答案 1 :(得分:-1)
这些只是严格和标准的警告,因此您只需将global config param debug设置为none,所有警告都将消失。
最好检查代码并手动修复它以进行PHP 5.6处理 - 没有开发人员会再为你提供Joomla!v1.5的支持,所以你必须自己修复它。