Install LAMP (Linux, Apache, MariaDB, PHP) on CentOS 8 / RHEL 8
LAMP stands for Linux, Apache, MySQL and PHP. Most of the websites used LAMP stack and it’s very easy to setup. In this lesson, I’m going to install LAMP on CentOS 8 server. The commands are the same for RHEL 8.
Table of Contents
Step 1 : Install Apache Web Server
On CentOS / RHEL 8, we will use the dnf
command to install any package. Before installing Apache, let’s upgrade our operating system by this command:
sudo yum update
Now, let’s install Apache:
sudo dnf install httpd
We need to enable the Apache server to start after reboot:
sudo systemctl enable httpd
To start the Apache server, run this command:
sudo systemctl start httpd
If firewall is enabled on your server, you need to open HTTP (80) port. Let’s open HTTP and HTTPS (443) ports:
# open http
sudo firewall-cmd --zone=public --permanent --add-service=http
# open https
sudo firewall-cmd --zone=public --permanent --add-service=https
# reload firewall
sudo firewall-cmd --reload
We’ve installed Apache web server on our server. Let’s print a welcome message. Just run this command:
echo "Welcome to CentOS/RHEL 8 Server" > /var/www/html/index.html
Open browser and visit the website using the IP address or hostname. Here’s the example http://ip-address/
. You’ll see the welcome message.
Step 2 : Install MariaDB Server
We are going to install MariaDB on our server. Run this command to install MariaDB:
sudo dnf install -y mariadb mariadb-server
We have to enable the MariaDB server to start after each reboot:
sudo systemctl enable mariadb
Start the MariaDB server:
sudo systemctl start mariadb
Let’s check the status of the MariaDB server:
sudo systemctl status mariadb
Here’s the console output:
Let’s secure our MariaDB server. Enter this command:
mariadb-secure-installation
You’ll be asked some questions. The questions and answers are:
1. Enter current password for root (enter for none):
Ans: just press Enter
2. Set root password? [Y/n]
Ans: Y and then set your password.
3. Remove anonymous users? [Y/n]
Ans: Y
4. Disallow root login remotely? [Y/n]
Ans: Y
5. Remove test database and access to it? [Y/n]
Ans: Y
6. Reload privilege tables now? [Y/n]
Ans: Y
Step 3 : Install Latest PHP
By default, CentOS/RHEL 8 has PHP 7.2 version. We can install by this command:
sudo dnf install -y php php-mysqlnd
To install the latest PHP, we have to add two repositories on our server. The first one is the EPEL repository:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
The second one is the Remi repository. Mainly we need this one. Remi repo requires EPEL repo.
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
See all available PHP version:
dnf module list php
You’ll find PHP 7.2, 7.3, and 7.4 versions. Let’s install PHP 7.4:
sudo dnf module install php:remi-7.4
Install PHP 7.4 with all necessary modules:
sudo dnf install -y php-cli php-common php-zip php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-pdo
Now restart the webserver:
sudo systemctl restart httpd
Step 4 : Check PHP Info
Check the PHP version:
# command
php -v
# output
PHP 7.4.0RC4 (cli) (built: Oct 15 2019 11:28:21) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies
with Zend OPcache v7.4.0RC4, Copyright (c), by Zend Technologies
Let’s test on the live site. Enter this command to create a PHP file and echo phpinfo()
function.
echo "<?php phpinfo()?>" > /var/www/html/info.php
Now visit your website by entering the IP or hostname of your server.
http://ip-address/info.php
You’ll see a page like this:
The article is over. Thank you. ?Md Obydullah
Software Engineer | Ethical Hacker & Cybersecurity...
Md Obydullah is a software engineer and full stack developer specialist at Laravel, Django, Vue.js, Node.js, Android, Linux Server, and Ethichal Hacking.