It is strongly recommended that a full backup of the system (13 ,14 or 15) be made prior to the upgrade steps below. If necessary, this backup can be used as a restore point to a new install. Note also that the new Backup and Restore module in FreePBX 16 allows restores of backups made by previous versions.
This wiki will describe the process to upgrade your FreePBX systems to latest FreePBX 16 on any "Non-Distro" Platforms.
Major difference between FreePBX 15 and FreePBX 16 is PHP version upgrade from 5.6 to 7.4.
Users who are running Freepbx on non-distro platforms have to manage updating to PHP 7.4 and dependent packages by themselves.
FreePBX Non Distro Platform
Please ensure that below "prerequisite" is completely before starting the upgrade process.
Please ensure that all the modules are up-to-date.
"fwconsole ma listonline" from Linux cli command can be used to check/confirm the module status.
Please ensure that system file permissions are proper.
"fwconsole chown" from Linux cli command can be used to check/confirm the same.
PHP 7.4.x Update
1) Update PHP Version to 7.4 -
- PHP 7.4.x is required for FreePBX 16.
- Before we start upgrade tool, we have to upgrade system PHP to 7.4
- If you are using Debian then you could refer/follow "Install FreePBX 16.0 on Debian" wiki guide to update PHP version to 7.4.
- Please note that, for an existing system we just have to update the PHP version not all the dependent other system packages.
- Update to SURY repository process to update PHP 7.4.x would be enough for an existing Debian system.
use "php -v" command in Linux cli to confirm the PHP version.
2) Update Apache configuration -
Load PHP 7.4 library and configuration to apache and remove existing pre 7.4 version.
Please ensure configuration file is as per your system requirement. You can always refer to your existing PHP version configuration file.
Openssl Key Configuration
We might have an issue due to the latest openssl installed into the system so during the upgrade process we need to do below changes in openssll.conf file. Ref - https://imlc.me/dh-key-too-small
Change to "CipherString = DEFAULT@SECLEVEL=1".
Once upgrade done successfully, you can revert back above changes to original configuration and restart apache.
- Restart apache service to ensure that server is loading PHP 7.4.x version.
- "service apache2 restart" for Debian system for example to restart the apache service.
Note: FreePBX 15 might not work properly with PHP 7.4 , so if you face any issue with Version upgrade GUI then its better to use CLI command to upgrade the system.
How to install FreePBX upgrader tool
Please find below steps to install FreePBX upgrader tool.
Download PBX Upgrader tool from server
- Jump to "FreePBX GUI → Admin → Updates " section.
- Select "Module updates" tab from updates page and then click "check online".
"Check online" will fetch the latest available modules from our mirror server and then it will display available modules.
Select "download all" and then "process".
- This will again ask for the confirmation to install latest version of PBX upgrader tool
On confirmation this will install the module and will take you to module admin page.
Install PBX Upgrader tool manually
If PBX upgrader tool is not visible for you during "check online" functionality then you can follow below steps to install this manually.
- Navigate to your PBX, login and go to Module Admin
- Click “Upload Module”
- Make sure “Download from the web” is chosen and enter
http://mirror1.freepbx.org/modules/packages/versionupgrade/versionupgrade-15.0.33.tgz as the “Download Remote Module”
- Click download from web
- Go to Manage local modules
Install the new module (should show locally available).
GUI - How to use FreePBX upgrader tool
Please find below steps to upgrade your FreePBX 15 systems to FreePBX 16 using "PBX upgrader" tool.
- Select "FreePBX GUI → Admin → 15 to 16 Upgrade Tool"
- After selecting 15 to 16 Upgrade tool, below page will reopen where we can check the features of FreePBX-16 by expanding the tab or else move to next step by clicking "Check the requirements" button.
- You will see all passed validation as soon as "requirements check" process is over. Move to next step by clicking "Proceed to upgrade process". If you have not updated PHP version to 7.4 as mentioned in the prerequisites then the PBX updater will not allow you to proceed with the update.
Upgrade process will start with below wizard. Step- 1, select the distribution and click on "Next" button.
Step-2, provide some additional information to help us learn more about who is using FreePBX please tell us a little bit about yourself.
Step-3 of upgrade wizard will take some time due to downloading , installing FreePBX 16 modules. so "do not refresh the web browser" and let the process to finish.
Wizard will display the update status, on successful completion it will display "The upgrade process has finished. Click Refresh below to continue.". Just click on the "Refresh" button and you will be redirected to module admin page and upgrade to FreePBX-16 done successfully.
CLI - How to use FreePBX upgrader tool
Please find below CLI command to perform upgrade via Linux CLI.
apt-get update && apt-get upgrade -y
fwconsole ma upgradeall
fwconsole ma downloadinstall versionupgrade --skipchown OR fwconsole ma downloadinstall http://mirror1.freepbx.org/modules/packages/versionupgrade/versionupgrade-15.0.10.tgz --skipchown
fwconsole versionupgrade --check
fwconsole versionupgrade --upgrade
reboot or fwconsole restart
Upgrade to FreePBX 16 from FreePBX 13/14
The recommended path from FreePBX 13/14 to FreePBX-16 is to use the "Backup & Restore" functionality to take a Backup from the working FreePBX-13/14 system and then restore to newly installed FreePBX-16 system.
The following steps will have you up and running on a FreePBX-16 system with the same configuration as your existing FreePBX-13/14 system.
- Take Backup of your FreePBX-13/14 System.
- Take full backup of your FreePBX-13/14 system using Backup & Restore module of FreePBX-13/14. Please refer to Using the Backup module for further details of how to configure and take full backup of your 13/14 system.
- Install FreePBX-16 on another server.
- Activate FreePBX-16
- Once FreePBX-16 installation is done, activate your FreePBX-16. Please refer to System Admin - Activation for more details about the system activation process.
- Upgrade all FreePBX-16 modules to current
- After activation , FreePBX will show you a pop up with a list of available module updates. Otherwise you can check yourself by using "Check Online" function in Module Admin. Please refer to Updates#ModuleUpdates for more details.
- Please note that Backup & Restore has been completely re-designed in FreePBX-15/FreePBX-16 so you will see GUI differences in the way it used to work in FreePBX-13/14 vs FreePBX-15/FreePBX-16.
- Please refer to Backup and Restore FreePBX 15+ for more about the FreePBX-15/FreEPBX-16 Backup & Restore module.
- We can restore the configurations by uploading the FreePBX-13/14 generated configuration backup to "FreePBX GUI → Admin → Backup & Restore → Restore tab".
- After a successful restore , your FreePBX-13/14 is successfully replicated to new FreePBX-16.
Trouble Shooting the Upgrade process
- "Array and string offset access syntax with curly braces is deprecated in Encoding.php line 196:" - If you are getting this syntax error while running "fwconsole chown" command after updating FreePBX 15 system to php7.4, then please run "chown -R asterisk:asterisk /var/www/html/" instead of "fwconsole chown" and continue with the next step.
- If your upgrade process failed for some reason or there is no response in from the GUI wizard due to some network issues, then please login to CLI and check "/var/log/pbx/freepbx16-upgrade.log" for more detailed info on why the process got failed.