Read in 3 minutes

last updated 

How to Install PHP on Ubuntu 18.04

This tutorial is also available for:

centos 7 debian 9

Ubuntu 18.04 LTS ships with the latest and greatest PHP version 7.2. Most of the popular PHP frameworks and applications including WordPress, Laravel, Drupal and Symfony are compatible with PHP 7.2.

In this tutorial we will explain how to install PHP 7.2 on Ubuntu 18.04.

Prerequisites

Before starting with this tutorial, make sure you are logged in as a user with sudo privileges.

Installing PHP 7.2 with Apache

If you are using Apache as your web server to install PHP and Apache PHP module run the following command:

sudo apt install php libapache2-mod-php

Once the packages are installed restart the Apache service:

sudo systemctl restart apache2

Installing PHP 7.2 with Nginx

Unlike Apache, Nginx doesn’t have a built in support for processing PHP files so we need to install a separate application such as PHP FPM (“fastCGI process manager”) which will handle PHP files.

To install the PHP and PHP FPM packages run the following command:

sudo apt install php-fpm

Once the packages are installed you can check the status of the PHP FPM service with:

systemctl status php7.2-fpm
* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-30 23:56:14 PDT; 1min 28s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 10080 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 2321)
   CGroup: /system.slice/php7.2-fpm.service
           |-10080 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)

You can now edit the Nginx server block and add the following lines so that Nginx can process PHP files:

server {

    # . . . other code

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

Do not forget to restart the Nginx service so that the new configuration take effect:

sudo systemctl restart nginx
Advertisement

Installing PHP extensions

To extend the core functionality of PHP you can install some additional extensions. PHP extensions are available as packages and can be easily installed with:

sudo apt install php-[extname]

For example if you want to install MySQL and GD PHP extensions you would run the following command:

sudo apt install php-mysql php-gd

After installing a new PHP extension do not forget to restart the Apache or the PHP FPM service, depending on your setup.

Testing PHP Processing

To test whether your web server is configured properly for PHP processing, create a new file called info.php inside the /var/www/html directory with the following code:

/var/www/html/info.php
<?php

phpinfo();

Save the file, open your browser of choice and visit http://your_server_ip/info.php

The phpinfo function will print information about your PHP configuration as shown on the image bellow:

Installing PHP 7.1 on Ubuntu 18.04

Use PHP 7.1 only if you’re going to install an applications such as Magento 2 or Nextcloud that is not compatible with PHP 7.2.

Follow the steps below to install PHP 7.1:

  1. Enable the Ondrej PHP repository by typing:

    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:ondrej/php
  2. Install PHP 7.1 and few most common PHP modules:

    sudo apt install php7.1 php7.1-common php7.1-opcache php7.1-mcrypt php7.1-cli php7.1-gd php7.1-curl php7.1-mysql
    
  3. To verify the installation, run the following command which will print the PHP version:

    php -v
    PHP 7.1.20-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Jul 25 2018 10:07:09) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
      with Zend OPcache v7.1.20-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Conclusion

You have successfully installed PHP on your Ubuntu 18.04 server. You can also read about how to How to Install and Set up a PHP Project with Composer.

If you have any question or feedback do not hesitate to leave a comment.

This post is a part of the how-to-install-lemp-stack-on-ubuntu-18-04 series.
Other posts in this series:

How to Install PHP on Ubuntu 18.04