Page 1 of 1

PHP upgrade 7.4 / 8.0

Posted: Thu Jun 03, 2021 02:15
by Redhouse
I'm having some problems with the board upgrading to 7.4 (and 8.0). I've made some changes to get 7.3 working, but at 7.4 fast cgi I get an error log of :

Code: Select all

mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Cannot pass parameter 2 by reference in /home/<USER>/<DOMAIN>/common/xajax/xajax.php:48
mod_fcgid: stderr: Stack trace:
mod_fcgid: stderr: #0 /home/<USER>/<DOMAIN>/common/includes/class.event.php(71): edk_xajax::lateProcess('')
mod_fcgid: stderr: #1 /home/<USER>/<DOMAIN>/common/index.php(237): event::call('mods_initialise...', '')
mod_fcgid: stderr: #2 /home/<USER>/<DOMAIN>/index.php(26): include('/home/<USER>/...')
mod_fcgid: stderr: #3 {main}
mod_fcgid: stderr:   thrown in /home/<USER>/<DOMAIN>/common/xajax/xajax.php on line 48
8.0 gives a similar log message.

Any help is appreciated

Re: PHP upgrade 7.4 / 8.0

Posted: Sun Jun 06, 2021 21:11
by Redhouse
I hacked a few pages to get the board to run on 7.4, although it's not thoroughly tested. The changes were:
get_magic_quotes functions -> remove cases, where this was used and replaced with 0/false

Functions with same name as their class -> change funtion name to '__construct' as a drop in replacement

Edited two lines out in xajax.php, which seemed to fix the problem in the previous post, and not cause new errors but I don't know why the problems existed

Code: Select all

 event::call('xajax_initialised', get_class());
 event::call('mod_xajax_initialised', get_class());
updated smarty to version 3.1.9 fixes some errors

changed /v4/corporations/{corporation_id}/ to /v5/corporations/{corporation_id}/

Re: PHP upgrade 7.4 / 8.0

Posted: Tue Aug 03, 2021 19:25
by unrealalex
what changes did you make to make it work on 7.3?

Re: PHP upgrade 7.4 / 8.0

Posted: Thu Aug 26, 2021 05:36
by Redhouse
I got 7.4 working by using the error log for the site, and setting the site to the php version that breaks. Then I went through the log and fixed as many errors as I could followed by more investigation for the more difficult errors. For 7.3 whatever changes were required were fairly minimal so I'd suggest doing that since I didn't write down the detail on fixes for 7.3, or just implement the changes to make 7.4 work.

The changes regarding methods with the same name as their class is described here: ... -same-name

get_magic_quotes instances probably don't matter for 7.3: ... es-gpc.php

There is an error for the each() function related to the smarty extensions, and my note was 'smarty 3.1.9 seems to work well', so you may want to update smarty files. If you download package and some files weren't used just omit them.

The corporation ESI route is in CorporationApi.php

If you're paying for external hosting and don't want the hassle, there are probably a few services out there that will let you continue to run an old php version. I found one that appears to allow it at no additional cost here: ... hp-version