Setup Apahce2 Web Servers with PHP Support on Ubuntu Servers

office 4694143 640

If you’re going to be developing any PHP application, you’re mostly going to need PHP installed. 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.

This brief tutorial is going to show students and new users how to setup Apache2 web server environment with PHP support. Most popular content management systems like WordPress, Joomla, Drupal use PHP.

PHP is a big deal!

When you’re ready to set up Apache2 environment with PHP 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 and enable Apache2 service to always startup when the server boots up.

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

Step 2: Install PHP and Related Modules

After installing Apache2 above, run the commands below to install PHP and related PHP modules. There are many PHP modules that perform different functions. however, there are some important ones that are always needed when developing PHP based websites.

sudo apt-get install php libapache2-mod-php php-mcrypt php-cli php-mysql php-gd php-imagick php-recode php-tidy php-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 is located at /etc/php/7.x/apache2/php.ini

The X in the location will be 0 or 1 depending on the php version installed.

Open PHP Apache2 configuration file by running the commands below

sudo nano /etc/php/7.x/apache2/php.ini

Then edit the file to suit your environments. Some important lines to consider:

file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 64M

Next, lookup Apache2 dir.conf file and confirm the line below:

<IfModule mod_dir.c>
     DirectoryIndex index.html index.cgi index.php index.xhtml index.htm
# 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 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!

php loaded configuration file


Congratulations! You’ve successfully installed and configured Apache2 and PHP on Ubuntu servers

You may also like the post below:


  1. I followed all stepes but I got blank page.
    not to forget when I put this line “sudo apt-get install php libapache2-mod-php php-mcrypt php-cli php-mysql php-gd php-imagick php-recode php-tidy php-xmlrpc”
    I got “Package php-mcrypt is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Package ‘php-mcrypt’ has no installation candidate”

    Then I install by different way like here (
    Finally, If I do by mistake some extra modification in the file “php.ini” like one extra space dose that screwed everything.



      mcrypt is depricated and removed from the repository as of PHP 7.2.0, so the installer won’t find it any more


    who writes these stupid instructions. Are you just intentionally leaving out important information. Like where the fK is the Apache2 dir.conf file located on the back of my ass?

  3. On my ubuntu,
    or use locate dir.conf

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.