How to Update PHP From 5 to 7 (NGINX/Apache, CentOS 7)

Updated on September 21, 2016
How to Update PHP From 5 to 7 (NGINX/Apache, CentOS 7) header image


This tutorial will cover on updating PHP 5* to 7, with NGINX or Apache.


Before we start, we'll need to add a repository because PHP 7 isn't considered stable enough to be in the CentOS repository. As a result, we'll need to use non-default CentOS repository.

The below script will add the necessary yum repositories for installing PHP 7 on CentOS:

cd /
wget -O
chmod 755

Next, we'll need to reconfigure Apache or Nginx.

Configuring Apache

###Step one - removing PHP5:

yum remove  php-common mod_php php-cli  -y

###Step two - installing PHP7 from the new repository we added:

yum install php70u-mysqlnd mod_php70u php70u-cli -y

###Step three - restarting Apache:

systemctl restart httpd

Configuring NGINX

###Step one - removing PHP5:

 yum remove php-common php-fpm php-cli -y

###Step two - installing PHP7:

yum install php70u-mysqlnd php70u-fpm-nginx php70u-cli -y

###Step three - editing php-fpm: Enter the file with any text editor (we'll be using vim):

vi /etc/php-fpm.d/www.conf

Find the following line, and comment it with a semicolon:

listen =     

Find the following line. and remove the semicolon:

;listen = /run/php-fpm/www.sock 

Now, find the following line and remove the semicolon:

;listen.acl_users = nginx

Save and exit (hold CTRL, followed by W and Q).

###Step four - configuring NGINX: Enter the file:

vi /etc/nginx/default.conf

Add the following block:

upstream php-fpm {
    server unix:/run/php-fpm/www.sock;
    # server;

Find the following and remove it:

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

Now, replace it with:

fastcgi_pass php-fpm;

Save and exit.

###Step five - restarting NGINX and php-fpm:

systemctl restart nginx
systemctl restart php-fpm


Congratulations! You have now updated PHP on Apache/NGINX.