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:
Just to know:
The process is that all V15 modules are deleted in the first step.
Next the new version 16 is going to be downloaded.
After that the intention is to install the V16 modules.
Therefore, my cloud-server has a monthly transaction volume of 20GB. The package to be downloaded has a volume of 24 GB. Finally what happend: Total crash of the PBX. Because all modules were deleted, and V16 can not be installed since new version can not be fully downloaded. Result is a reduced OS with even missing basic commands. Not even ls is available any more.
There is no possibility to restore anything, without a cloud-server snap-backup.
So keep care for your installation.
Any way. This cloud-server was Hetzner Germany at 5 € per month. I changed to an other provider with unlimiited transaction volume.
Just to know: Is there any possibility - something like CDR or on the web-gui start page to see the data-volume of e.g. the last month or so? By the way: Is there a possibility for outside inbound / outbound calls statistics? Specifically how many at the same time? This would be currently important for me to decide on the telco-provider’s offer how may outside lines to buy. Each line costs its monthly fee.