How to install Apache, PHP 7.2, and MySQL on Ubuntu 18.04 (LTS)

TroyinTokyo
4 min readDec 3, 2020

This tutorial explains how to provision a basic web service package, e.g. LAMP. And I’m running all the steps in this tutorial with root privileges, so logged in as root:

sudo -s

1. Installing MySQL or MariaDB Database ( The following example will be an installation of MariaDB 10 )

1.1 Install MariaDB 10

Run the following command to install MariaDB-server and client:

apt-get -y install mariadb-server mariadb-client

Now we set a root password for MariaDB.

mysql_secure_installation

You will be asked these questions:

Enter current password for root (enter for none): <-- press enter
Set root password? [Y/n] <-- y
New password: <-- Enter the new MariaDB root password here
Re-enter new password: <-- Repeat the password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

1.2 Test the MySQL/MariaDB root login
Test the login to MariaDB with the “mysql command”

mysql -u root -p

and enter the MariaDB root password that you’ve set above. The result should be similar to the screenshot below:

To leave the MySQL/MariaDB shell, enter the command “quit” and press enter.

2. Install Apache Web Server

Apache 2 is available as an Ubuntu package, therefore we can install it like this:

apt-get -y install apache2

Now direct your browser to http://192.168.1.100, and you should see the Apache2 default page (It works!):

The document root of the apache default vhost is /var/www/html on Ubuntu and the main configuration file is /etc/apache2/apache2.conf. The configuration system is fully documented in /usr/share/doc/apache2/README.Debian.gz.

3. Install PHP 7.2

We can install PHP 7.2 and the Apache PHP module as follows:

apt-get -y install php7.2 libapache2-mod-php7.2

Then restart Apache:

systemctl restart apache2

4. Test PHP and get details about your PHP installation

The document root of the default web site is /var/www/html. We will now create a small PHP file (info.php) in that directory and call it in a browser. The file will display lots of useful details about our PHP installation, such as the installed PHP version.
Advertisement

nano /var/www/html/info.php<?php
phpinfo();

Then change the owner of the info.php file to the www-data user and group.

chown www-data:www-data /var/www/html/info.php

Now we call that file in a browser (e.g. http://192.168.1.100/info.php):

As you see, PHP 7.2 is working, and it’s working through the Apache 2.0 Handler, as shown in the Server API line. If you scroll further down, you will see all modules that are already enabled in PHP. MySQL is not listed there which means we don’t have MySQL / MariaDB support in PHP yet.

5. Get MySQL / MariaDB support in PHP

To get MySQL support in PHP, we can install the php7.2-mysql package. It’s a good idea to install some other PHP modules as well as you might need them for your applications. You can search for available PHP modules like this:

apt-cache search php7.2

and

apt-cache search php-

as not all PHP packages have version number 7.2 in their name.
Pick the ones you need and install them like this:

apt-get -y install php7.2-mysql php7.2-curl php7.2-gd php7.2-intl php-pear php-imagick php7.2-imap php-memcache  php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl php7.2-mbstring php-gettext

Now restart Apache2:

systemctl restart apache2

PHP 7.2 has now MySQL / MariaDB support as shown in phpinfo() above.

What’s more?

Once Apache, PHP, and MySQL have been provisioned in Ubuntu 18.0.4, you could just go to download the source code of ZenTao and unzip it to your webroot

sudo wget https://blog.easycorp.cn/dl/zentao/biz4.1/ZenTaoPMS.biz4.1.php7.2.zip

Since the apache default vhost is /var/www/html on Ubuntu 18.04, so just unzip it there

sudo unzip  ZenTaoPMS.biz4.1.php7.2.zip -d /var/www/html

And now just direct your browser to http://192.168.1.100

For the latest Enterprise version of ZenTao, https://www.zentao.pm/dynamics/scrum-tool-for-enterprises-zte4.1-798.html

References

https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-18-04-lamp/

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

TroyinTokyo
TroyinTokyo

Written by TroyinTokyo

0 Followers

Technical support in a scrum team.

No responses yet

Write a response