Apache2 with PHP 7.1 Support on Ubuntu 18.04 LTS Server

I have been testing Ubuntu 18.04 LTS recently. It is installed on my Windows 10 machine via VMware Workstation 14 Pro… There are lots of fun things in store and upcoming. Here’s how to install Apache2 with PHP support on Ubuntu 18.04 LTS.

Oh, Ubuntu 18.04 LTS also comes with the latest version of PHP… which is 7.1

If you’re going to be building any PHP based application, you’re mostly going to need PHP and related modules installed on your systems. PHP is an open source, server scripting language use for creating dynamic web applications and websites.

PHP is a widely-used, free, and efficient alternative to competitors such as Microsoft’s ASP.

For those wanting to test Apache2 with PHP support on Ubuntu 18.04 LTS, the steps below show you how to do that. Majority of the popular content management systems like WordPress, Joomla, Drupal use it, so PHP is a big deal!

When you’re ready to set up Apache2 environment with PHP 7.1 support, follow the steps below:

Step 1: Install Apache2 Web Server

sudo apt install apache2

After installing Apache2, the commands below can be used to stop, start, reload and enable Apache2 service to always startup when the server boots up.

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl reload apache2.service
sudo systemctl enable apache2.service

Step 2: Install PHP and Related Modules

PHP 7.1 may not be available in Ubuntu default repositories… in order to install it, you will have to get it from third-party repositories.

Run the commands below to add the below third party repository to upgrade to PHP 7.1

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Then update and upgrade to PHP 7.1

sudo apt update

Finally, run the commands below to install PHP 7.1 and related modules..

sudo apt-get install php7.1 libapache2-mod-php7.1 php7.1-mcrypt php7.1-cli php7.1-xml php7.1-zip php7.1-mysql php7.1-gd php7.1-imagick php7.1-recode php7.1-tidy php7.1-xmlrpc

The line above will allow PHP to function with many popular PHP based websites and applications.

Step 3: Configure Apache2 PHP Settings

Now that Apache2 and PHP are installed, you may want to configure Apache2 to use PHP properly. The default Apache2 PHP configuration file for PHP  is located at /etc/php/7.1/apache2/php.ini

Open PHP Apache2 configuration file by running the commands below

sudo nano /etc/php/7.1/apache2/php.ini

Then edit the file to suit your environments. Scroll down the file line by line and modify the lines for the settings below… always configure an appropriate setting for your environment.

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Next, lookup Apache2 dir.conf file and confirm the highlighted line below… If you see index.php defined, then you’re good.

<IfModule mod_dir.c>
     DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

If you don’t see the index.php definition on the line, please add it and save the file.

Restart Apache2 and PHP 7.1 services

sudo systemctl restart apache2.service

Step 4: Test PHP Setup

At this point, Apache2 and PHP should be installed and ready.. to test your Apache2 PHP settings, create a blank file with the line below:

sudo nano /var/www/html/phpinfo.php

Then add the line in the file and save.

<?php phpinfo( ); ?>

Save the file and open your browser and browse to the server name or IP address followed by phpinfo.php

You should see something similar to the image below… if you do, then you’re all good!

lighttpd php ubuntu

That’s it!

You may also like the post below:

Nginx HTTP Server on Ubuntu 18.04 LTS Server