When upgrading PHP, make sure to edit php.ini to disable functions with security problems.
When upgrading PHP, make sure to edit php.ini to disable functions with security problems.

Upgrading Joomla to PHP 7.3

PHP 7.3 was released in December of 2018 at about the same time that PHP 7.1 moved to support for security fixes only; PHP 7.2 is the primary release, but 7.3 offers some incremental improvements. PHP 7 was claimed to be about a 2X performance improvement over PHP 5.6, and each release of the 7 series claims performance of 5-20% better than the previous release. CPanel announced that EasyApache 4 added PHP 7.3 in December, so I decided that three months was enough time for many of the problems to be worked out and took the plunge on moving to 7.3; it went fairly easily.

If you are still on PHP 5.6, or on a Joomla release prior to 3.9, you should probably look at Upgrading to Joomla 3.8, 3.9, 3.10 and 4.0 before reading this article.

Backup

As always, make sure that you have backups before beginning any system level work.

Upgrade Joomla Extensions, and Joomla

As always for a PHP upgrade, make sure that both Joomla and all extensions are current and that you are on the current release of Joomla.

Add PHP 7.3 in CPanel

If you have a VPS, you will need to log in to Web Hosting Manager and add PHP 7.3 in EasyApache. It will prompt you to include the PHP packages that are used in the other versions of PHP; say “yes” unless you know that you no longer need some of the packages.

If you do not have a VPS, PHP 7.3 may be available in the Multi-PHP settings within CPanel. If not, call your web hosting technical support to make sure that it is added. This will probably take a day or two, and may be much longer.

In WHM, Update PHP Configuration

You will need to update the PHP configuration so that it matches the settings for your working PHP 7.1 or 7.2:

  • Make sure that the maximum file upload and post size are increased, otherwise you will not be able to upload many Joomla extensions.
  • Depending upon your site and the defaults, you may need to increase the default memory. Some sites of mine that were fine on 32M in PHP 7.2 required an increase in PHP 7.3.
  • Update the php.ini setting for disable_functions to disable at least "show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open, ini_set". The CPanel security audit will complain if you do not.
Figure 1. Make sure to update php.ini to disable functions with security exposure; you cannot do this is the basic config panel.
Make sure to directly edit the php.ini file to disable functions with security problems.

Turn on Error Messages in Joomla

If everything goes perfectly, you will not need error messages, but it will be easier if you turn this on before switching over the first time. If you do not turn it on now, you will have to log in to Joomla each time you switch PHP versions (assuming you are using PHP sessions for performance).

Figure 2. Turn on error reporting in Joomla before switching to PHP 7.3. Make sure to set it back to the default when you have completed the upgrade.
Make sure to set the Joomla error reporting to simple to help in diagnosing problems in PHP settings.

In WHM, Switch to PHP 7.3

Once you have done all the prep work, switch to PHP 7.3 and test everything on your site. If you have extensions for managing photo galleries, make sure to test these; some of them are dependent upon PHP modules that are not installed by default.

Turn off Error Messages in Joomla

Once you are done, make sure to turn error messages off in Joomla. You will probably still get a number of warning messages, but no fatal messages.

Summary

If you are current on Joomla maintenance and have already switched to PHP 7.1 or 7.2, moving to 7.3 should be a relatively painless. The most likely problem area will be forgetting to change a memory settings.