The way to Set up PHP on Debian 9

Debian 9 ships with PHP model 7.Zero will quickly attain end-of-life for help and now not obtain safety updates.

On this tutorial, we are going to stroll you thru the steps for putting in PHP 7.2 on a Debian 9 server. We can even present you tips on how to configure Apache and Nginx to run PHP.


Earlier than beginning with this tutorial, ensure you are logged in as a consumer with sudo privileges.

Putting in PHP 7.2 on Debian 9

The next steps describe tips on how to set up PHP 7.2 utilizing the Ondrej Sury repository.

  1. First, replace the apt bundle record and set up the dependencies essential to add a brand new repository over HTTPS:

    sudo apt replace
    sudo apt set up apt-transport-https ca-certificates curl software-properties-common

  2. Begin by importing the repository’s GPG key utilizing the next curl command:

    curl -fsSL | sudo apt-key add –

    Add the ondrej’s repository to your system’s software program repository record by typing:

    sudo add-apt-repository “deb $(lsb_release -cs) primary”

  3. Now that now we have the ondrej’s repository enabled on our system, we will set up PHP by specifying the model we wish to use:

    sudo apt replace
    sudo apt set up php7.2-common php7.2-cli

  4. Confirm the set up, by operating the next command which is able to print the PHP model.

    PHP 7.2.8-1+0~20180725124257.2+stretch~1.gbp571e56 (cli) (constructed: Jul 25 2018 12:43:00) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Applied sciences
    with Zend OPcache v7.2.8-1+0~20180725124257.2+stretch~1.gbp571e56, Copyright (c) 1999-2018, by Zend Applied sciences

Configuring Apache to run PHP

In case you are utilizing Apache as your internet server to put in PHP and Apache PHP module run the next command:

sudo apt set up php7.2 libapache2-mod-php

As soon as the packages are put in to allow the php7.2 module simply restart the Apache service:

sudo systemctl restart apache2

Configuring Nginx to run PHP

Not like Apache, Nginx doesn’t have a inbuilt help for processing PHP recordsdata so we have to set up a separate software similar to PHP FPM (“fastCGI course of supervisor”) which is able to deal with PHP recordsdata.

To put in the PHP and PHP FPM packages run the next command:

sudo apt set up php7.2-fpm

As soon as the packages are put in the PHP FPM service will begin robotically. You may examine the service standing with:

systemctl standing php7.2-fpm● php7.2-fpm.service – The PHP 7.2 FastCGI Course of Supervisor
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Energetic: energetic (operating) since Thu 2018-08-30 21:06:53 UTC; 1min 4s in the past
Docs: man:php-fpm7.2(8)
Predominant PID: 16791 (php-fpm7.2)
Standing: “Processes energetic: 0, idle: 2, Requests: 0, sluggish: 0, Visitors: 0req/sec”
CGroup: /system.slice/php7.2-fpm.service
├─16791 php-fpm: grasp course of (/and so on/php/7.2/fpm/php-fpm.conf)
├─16792 php-fpm: pool www
└─16793 php-fpm: pool www

Now you can edit your area Nginx server block and add the next traces in order that Nginx can course of PHP recordsdata:

server {

# . . . different code

location ~ .php$ {
embody snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;

Restart the Nginx service in order that the brand new configuration take impact:

sudo systemctl restart nginx

Putting in PHP extensions

We are able to prolong the core performance of PHP by putting in extra extensions. PHP extensions can be found as packages and might be simply put in with:

sudo apt set up php-[extname]

For instance if you wish to set up MySQL and GD PHP extensions it is best to run the next command:

sudo apt set up php7.2-mysql php7.2-gd

After putting in a brand new PHP extension don’t forget to restart the Apache or the PHP FPM service, relying in your setup.

Testing PHP Processing

To check whether or not your internet server is configured correctly for PHP processing, create a brand new file referred to as information.php contained in the /var/www/html listing with the next code:


Save the file, open your browser of alternative and go to http://your_server_ip/information.php

The phpinfo perform will print details about your PHP configuration as proven on the picture under:


You’ve gotten efficiently put in PHP in your Debian 9 server and discovered tips on how to configure your internet server to course of PHP recordsdata.

When you’ve got any questions or suggestions don’t hesitate to depart a remark.


Germany Devoted Server

Leave a Reply