Step 1 – Install PHP
PHP 7 is the default available packages in Ubuntu 16.04 repositories. Simply use the following commands to update apt cache and install PHP packages on your system.
sudo apt-get install python-software-properties sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install -y php7.2
You may also need to install some additional PHP modules for supporting various tasks
sudo apt install php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mcrypt
Step 2 – Install Apache2
After installing PHP on your system, let’s start the installation of Apache2 in your system. Also, you need to install a libapache2-mod-php module to work PHP with Apache2.
sudo apt install apache2 libapache2-mod-php7.2
Step 3 – Install MySQL
Finally, install mysql-server packages for MySQL database. Also, install php-mysql package to use MySQL support using php. Use the following command to install it.
sudo apt install mysql-server php7.2-mysql
The installer will prompt for root password, This password will work for your MySQL root user. After installing MySQL execute the following command for initial settings of MySQL server. You will see that script will prompt for more settings than earlier MySQL versions like password validation policy etc.
You can also install phpMyAdmin for the administration of MySQL using web interface.
sudo apt install phpmyadmin
Step 4 – Restart Services
After installing all the services on your system. Restart MySQL and Apache service to reload any changes done manually.
sudo systemctl restart apache2.service sudo systemctl restart mysql.service
Step 5 – Open Access in Firewall
The systems with iptables/ufw enabled, execute the following commands to open port 80 for public access of web server.
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo ufw allow 80/tcp
Step 6 – Test Setup
After completing all set up. Let’s create an info.php file website document root with the following content.
<?php phpinfo(); ?>
Now access this file in web browser. You will see the screen like below with all the details of PHP on the server.