PHP 7.3 has a lot of performance advantages compared to 7.2 and co among other bug fixes. Since performance is one of my main reason why I wanted to upgrade to PHP 7.3 on my Ubuntu server I am going to share how you can upgrade to PHP 7.3 on Ubuntu. My machine run Ubuntu 18.04 but I have performed this upgrade even on lower versions like Ubuntu 16.04 without any problems.
Let’s get started.
WARNING
Because PHP 7.3 is not yet officially released, there can be several bugs and other kind of issues since once again its not official yet. I highly recommend you not upgrade your production servers to PHP 7.3 yet.
1. Add ondrej/php
PPA
We are going to use PHP PPA by Ondrej. He has published PHP 7.3 on all supported Ubuntu versions.
Commands
sudo add-apt-repository ppa:ondrej/php # Press enter to confirm.
sudo apt-get update
2. Write down current PHP packages
If you are upgrading PHP from an earlier version, it’s important to make sure you ensure you have the same PHP extensions installed. PHP 7.2 onwards no longer include mcrypt
extension. Other than that, PHP 7.3 includes all extensions that were in PHP 7.1 and 7.2. dpkg -l | grep php | tee packages.txt
Above command will list all packages installed in your system that has php in its name, and write them to a file called packages.txt
in your current working directory. You can easily refer this file to install the same PHP 7.3 package counter parts.
3. Install PHP 7.3
Now to the juicy part!
PHP 7.3 core
sudo apt install php7.3 php7.3-common php7.3-cli
This will install PHP 7.3 core extensions and PHP 7.3 CLI.
PHP 7.3 extensions
You can now install the remaining packages as necessary. If you are setting up a new setup, or have no clear idea which packages to install, I highly recommend installing the following packages from the command below. If you are upgrading, look at the packages.txt
file to see your current list.
sudo apt-get install php7.3-curl php7.3-gd php7.3-intl php7.3-bcmath php7.3-imap php7.3-json php7.3-mysql php7.3-oauth php7.3-readline php7.3-bz2 php7.3-mbstring php7.3-opcache php7.3-readline php7.3-xml php7.3-zip
PHP 7.3 for web server
With all these packages in place, you might also need to integrate PHP with your web server. If you are using Nginx, or Apache with mod_event, you will need to install php7.3-fpm
package. If you are using PHP as an embedded Apache module, you will need libapache2-mod-php7.3
package. For Apache, you can run apachectl -V
to see your current MPM, whether its prefork
or event
.
Nginx and Apache with event
MPM
apt install php7.3-fpm
Apache with prefork
MPM
apt install libapache2-mod-php7.3
Activate php7.3 Apache module
sudo a2enmod php7.3
Issue update and upgrade command
sudo apt-get update
sudo apt-get upgrade