How to Setup LAMP on Redhat & Centos 7


A “LAMP stack” is a combination of operating system and software which enables you to host websites and web apps on your server.

The term “LAMP” stands for Linux, Apache, MySQL/MariaDB and PHP.

  • Apache: Runs the web server
  • MySQL/MariaDB: Stores website data
  • PHP: Processes web content

Here will see how to setup LAMP server on centos/Redhat 7 server.

Install Apache/HTTP:

We can install http using following yum command.

Before install check is there any updates, and if any update it.

# yum check-update

# yum update -y

# yum install httpd –y

Once its finished start the apache service and enable it to start at boot,

# systemctl start httpd.service

# systemctl enable httpd.service

If in your environment, firewall enabled use following command to use allow defauil ports 80 (http) and 443 (https) using firewalld command.

# firewall-cmd –permanent –add-port=80/tcp

# firewall-cmd –permanent –add-port=443/tcp

Reload the firewall service for the changes to take effect.

# firewall-cmd –reload

You can test the apache service using your browser through http://server-ip-address You will see the default redhat Apache web page like below

apache test page

Install MariaDB

MariaDB is a drop-in replacement for MySQL. It is easy to install, offers many speed and performance improvements, and is easy to integrate into most MySQL deployments. MariaDB offers more storage engines than MySQL, including Cassandra, XtraDB and OQGRAPH

Install mariaDB using following command # yum install mariadb-server mariadb Once installed start the mariaDB service and enable it in boot using  # systemctl start mariadb# systemctl enable mariadb

Now, to secure the MariaDB installation. You can do this by running:

# mysql_secure_installation

Enter following details as per your environment standard.

  • Enter current password for root (enter for none): currentrootpasswd
  • Set root password? [Y/n]: Press Enter
  • New password: rootsqlpasswd
  • Re-enter new password: rootsqlpasswd
  • Remove anonymous users? [Y/n]: Press Enter
  • Disallow root login remotely? [Y/n]: Press Enter
  • Remove test database and access to it? [Y/n] : Press Enter
  • Reload privilege tables now? [Y/n] : Press Enter

Your MySQL installation should now be secure.

Install PHP

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely used open-source general purpose scripting language that is especially suited for web development and can be embedded into HTML.

To Install PHP and its modules use following commands,

# yum install php php-mysql php-pdo php-gd php-mbstring -y 

Test PHP:

Create a sample “test.php” file in Apache document root folder and append the lines as shown below:

# vi /var/www/html/test.php

Add the following lines.




Restart httpd service:

# systemctl restart httpd 

You can see the test page like below  


Install phpMyAdmin

phpMyAdmin is a free open-source web interface tool used to manage your MySQL databases. By default official RHEL 7.0 or CentOS 7.0 repositories doesn’t provide any binary package for PhpMyAdmin Web Interface. So let us install it from EPEL repository.

# yum install epel-release

Now, install phpMyAdmin:

# yum install phpmyadmin -y

Configure phpMyAdmin

By default, phpMyAdmin can only be accessed from the localhost itself. To make it to accessible globally, do the following steps.

Edit the phpmyadmin.conf file:

# vi /etc/httpd/conf.d/phpMyAdmin.conf

Find and comment the whole /<Directory> section and add the lines as shown below: And replace with <<your-server IP>>;


Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin 

## Comment the following Section ## 

#<Directory /usr/share/phpMyAdmin/>

#   <IfModule mod_authz_core.c>

#     # Apache 2.4

#     <RequireAny>

#       Require ip

#       Require ip ::1

#     </RequireAny>

#   </IfModule>

#   <IfModule !mod_authz_core.c>

#     # Apache 2.2

#     Order Deny,Allow

#     Deny from All

#     Allow from

#     Allow from ::1

#   </IfModule>


## Add the following lines: 

<Directory /usr/share/phpMyAdmin/>        

Options none        

AllowOverride Limit        

Require all granted</Directory>[...]

Edit “” file and change from “cookie” to “http” to change the authentication in phpMyAdmin:

# vi /etc/phpMyAdmin/

Change ‘cookie’ to ‘http’.

[…] /* Authentication type */$cfg[‘Servers’][$i][‘auth_type’]     = ‘http’;    // Authentication method (config, http or cookie based)?[…]

Restart the Apache service:

# systemctl restart httpd

Now you can access the phpmyadmin console by navigating to the URL http://server-ip-address/phpmyadmin/ from your browser.