Note: I do everything with an upgrade via the command line. This has always worked out better than using the GUI.
First, it messes up a file permission in /var/www/html, so you need to run fwconsole chown after you install it.
Second, if you run it with sudo from a user other than root, it fails to properly do everything, even though it says the upgrade succeeds. Third, it does not check for ioncube to already be installed. Fixed in version upgrade 15.0.19
Fourth, it puts in the sng7php74 repo file more than one time.
So, to make your experience better, here is how I would run the upgrade from FreePBX 15 to 16
Login with your non-root user. Because you never allow root to log in over ssh right?
Update the system
sudo yum upgrade -y
Remove ioncube if you already have it installed (most people will not), not required if your version upgrade versions is 15.0.19 or later.
sudo yum remove ioncube-loader-56
Upgrade the current modules.
sudo fwconsole ma upgradeall
sudo fwconsole chown
sudo fwconsole reload
Log back in and then switch to root.
sudo su -
Download the versionupgrade module
fwconsole ma downloadinstall versionupgrade
Fix permissions again
Run the version upgrade check and use fwconsole ma delete MODULENAME to remove any depreciated modules. If you do this, also make sure to fwconsole reload.
fwconsole versionupgrade --check
It should be clean, so upgrade. If you have issues, before you revert your snapshot, download the freepbx16_upgrade.log file from /root in order to look at what went wrong.
fwconsole versionupgrade --upgrade | tee -a freepbx16_upgrade.log
Fix any issues you may have. I had a broken restapi, likely left over from when this system was FreePBX 13.
fwconsole ma delete restapi
Once everything looks good, reboot and see if it all comes up again normally.
I also had to touch /etc/asterisk/extconfig_custom.conf, an #included file that was missing, for Asterisk to start. This may be handled by fwconsole chown but I’m not sure; I created the conf file right after I saw that Asterisk wouldn’t start and saw the reason in the log.
versionupgrade 15.0.19 enables way too much logging to console to be immediately helpful. The next upgrade I worked, failed. But the verbose spew scrolled everything beyond my console default scrollback cache.
Thank you, Jared! Our first attempt to upgrade last night using the GUI failed immediately at the PHP7.4. We restored from backup and then followed your steps in CLI. All is well “except” for AD sync. I will be opening another thread for that, most likely. The error is “Internal Server Error: Option admin account suffix does not exist.” Users are there but their permissions aren’t. UCP and all logins but our local admin are rejected. UCP console log shows the above internal server error. The GUI displays the following: