1
votes

I tried to run my Joomla 1.x website with PHP 5.6 and got the following errors:

Strict Standards: Declaration of KHttpUri::set() should be compatible with KObject::set($property, $value = NULL) in /home/beauty/www/libraries/koowa/http/uri.php on line 0 Strict Standards: Declaration of KHttpUri::get() should be compatible with KObject::get($property = NULL, $default = NULL) in /home/beauty/www/libraries/koowa/http/uri.php on line 0 Strict Standards: Non-static method JLoader::register() should not be called statically in /home/beauty/www/libraries/joomla/cache/cache.php on line 19 Strict Standards: Declaration of JCacheStorage::get() should be compatible with JObject::get($property, $default = NULL) in /home/beauty/www/libraries/joomla/cache/storage.php on line 0 Strict Standards: Non-static method JLoader::register() should not be called statically in /home/beauty/www/libraries/joomla/document/document.php on line 19 Strict Standards: Non-static method JLoader::import() should not be called statically in /home/beauty/www/libraries/loader.php on line 186 Strict Standards: Non-static method JLoader::import() should not be called statically in /home/beauty/www/libraries/loader.php on line 186 Fatal error: Call-time pass-by-reference has been removed in /home/beauty/www/plugins/content/listitems.php on line 95

The website worked fine before with PHP 5.3 (on Ubuntu 12.X LTS), so probably this is something related to compatibility PHP 5.3/5.6.

Does anyone know what is it? What PHP extension this can relate to?

2
have you also changed the php.ini file? - Disable strict standards?Tom Kuschel
I did not change php.ini, but I have "error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT"Koban
but in PHP 5.3 I have 'error_reporting = E_ALL & ~E_DEPRECATED' and my website works fine with it. Probably the both settings in PHP 5.3 and 5.6 are equivalent because E_ALL was changes in PHP 5.6.Koban
actually E_STRICT is disabled by default in /etc/php/5.6/fpm/php.ini as described here stackoverflow.com/questions/9983286/…, but I see 'Strict Standards' in browser.Koban

2 Answers

0
votes

It is pointless to tinkering with such an old Joomla version and get it run with a php 5.6. Joomla 1.5.x is not compatible with PHP 5.4 nor with 5.6; it's old but still available: docs.joomla.org/Joomla_1.5_won't_work_on_PHP_5.4. Nevertheless, the library koowa is not part of Joomla itself; you could rename the declarations of your classes, rename all functions which are called static (i.e. JLoader::register()) to a static function, etc. But you are still working with unsecure old libraries/plugins/components and Joomla version. Maybe you've changed the error reporting somewhere else (.htaccess), and you should have a look at http://php.net/manual/en/appendices.php. You should better migrate your site to the latest Joomla3.7.4 and PHP7... By the way, Call-time pass-by-reference has been removed in /home/beauty/www/plugins/content/listitems.php on line 95 which can be solved like in PHP 5.4 Call-time pass-by-reference - Easy fix available?, usually the function call works without the @ . Please also specify the exact version of Joomla (in your question please), between 1.0 and 1.5 as well as 1.7 are huge differences!

-1
votes

These are only strict and standard warnings, so you can just set the global config param debug to none and all warnings will be gone.

Better would it be to check the code and manually fix it for PHP 5.6 handling - no developer will give you support for Joomla!v1.5 anymore, so you have to fix it on your own.