A "LAMP" stack is a group of open-source software that is typically installed together to enable a server to host dynamic websites and web apps. This term is actually an acronym which represents the Linux operating system, with the Apache web server. The site data is stored in a MySQL database, and dynamic content is processed by PHP.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related LAMP queries.
In this context, we shall look into step by step process to install LAMP stack on Ubuntu 18.04 server.
How to install LAMP stack on Ubuntu ?
To install LAMP stack, follow the steps provided below.
Before starting this installation procedure, you need to log into the Server with a non-root sudo enabled user account.
1. Install Apache
Apache web server is most popular web server in the world. It also has a great community support so it's default choice for hosting a website. Execute following commands to install Apache :
$ sudo apt update
$ sudo apt install apache2
Here, we use sudo as command so these operations are executed with root privileges. It will prompt you to enter your regular user password to verify. After entering password, it will show details which packages will be install and how much disk space they will take. Press Y and hit Enter to continue and installation process will started.
Ensure that your firewall allows HTTP and HTTPS traffic. You can check "Apache Full" profile enables traffic or not :
$ sudo ufw app info "Apache Full"
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
It should show that it enables traffic to ports 80 and 443 or you can Allow incoming HTTP and HTTPS traffic for this profile:
$ sudo ufw allow in "Apache Full"
As an alternative, you can execute separate commands for port 80 and 433 to allow traffic as following :
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
You can test it quickly by visiting your server's public IP address in your web browser:
It should display a default Ubuntu 18.04 Apache web page.
This will prove that your Apache installation is correct.
2. Install MySQL
As you know MySQL is a database management system. So, It will organize and provide access to databases where your site can store information.
Execute following command to install mysql server:
$ sudo apt install mysql-server
This command will also show you details of packages which will be install and how much disk space will take. Press Y to continue.
Also it will prompt you to set MySQL root user password and it will be your mysql root password.
After that, now run MySQL pre-installed simple security script.
Which will remove defaults and lock down access to your database system. Execute given command :
$ sudo mysql_secure_installation
It will prompt you to configure password validation policy and more settings for MySQL. It will also ask to remove unnecessary users, disallow remote root login and test databases so go throughout it.
Finally, your MySQL server is installed and ready to use.
3. Install PHP
PHP component will process code to display dynamic content. Execute below command with helper packages so it can communicate with Apache and can make connection with MySQL database:
$ sudo apt install php libapache2-mod-php php-mysql
I hope php installed without any issue and we will check it now.
Now, restart Apache web server in order to get your changes by executing below command :
$ sudo systemctl restart apache2
4. Test Setup
In order to test that your system is configured properly for PHP, create a very basic PHP script called info.php.
So create this file at web root of server. In Ubuntu 18.04 directory is located at /var/www/html/ so create file here by executing this command :
$ sudo nano /var/www/html/info.php
Add the following PHP code inside the file:
At last, Save and close file.
Now visit this page in web browser using your server's public IP address as following :
This should show the PHP version page.
[Need urgent assistance in configuring PHP on your Linux System? We can help you. ]