I decided to upgrade the PHP version in one of my servers from 7.0 to 7.2 to live with the bleeding edge. The process went quite smoothly, except for the last step which I needed to do a bit research.
First thing’s first: check your current version
Also create phpinfo.php file in your /var/www/html directory
and run the file to be sure that both php CLI and apache version are the same.
You can use a third-party repository to install the latest version of PHP. We’ll use the repository by Ondřej Surý.
First, you need to install the repository.
# install required package so you can add repository sudo apt-get install software-properties-common # install the repository and update the repository list sudo add-apt-repository ppa:ondrej/php
Then, update packages in the system
sudo apt-get update && apt-get upgrade
Install PHP 7.2 (or newer version, you can just change the version number in the command)
sudo apt-get install php7.2
(optional) install PHP modules, depending on your needs. Note that the version of PHP has to be specified
sudo apt-get install php7.2-dev php7.2-zip php7.2-curl php7.2-gd php7.2-mysql php7.2-mcrypt php7.2-xml libapache2-mod-php7.2
Verify PHP version using the command line
$ php --version PHP 7.2.13-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 7 2018 08:07:08) ( NTS )
Verify PHP version using phpinfo.php file we created earlier.
!@$^%@$^, the PHP version is still the previous one!!! The reason is that apache is still running with the old PHP version. We will need to change that so the server can run with PHP7.2.
Let’s run the following commands:
# disable old php module sudo a2dismod php7.0 # enable new php module sudo a2enmod php7.2 # restart the server sudo service apache2 restart
Verify the PHP version again, and it should be updated to our new version.
If you want to upgrade to a different version of PHP, just change the version number while installing, and don’t forget to disable the old PHP module and enable the new one for Apache.
I hope this helps you with your work, and have fun upgrading 😀