How to Install Linux, Apache, MySQL, PHP (LAMP) stack On CentOS 6



LAMP is the most common configuration used in web server and it stands for Linux, Apache, MySQL, and PHP. This tutorial describes how to install LAMP stack on to CentOS system. The Linux part of the stack is already done as the virtual private server is up and running CentOS. Here you will see the installation of Apache, PHP and MySQL.

I assume that you have already done the server setup with user having root privileges on your VPS. Refer to this tutorial for initial server set up.

Installing Apache


Apache is free software that is distributed by Apache Software Foundation and is supposed to be the most popular open source software that runs over 50% of web servers in the world.

Before getting to installation of any LAMP software, just make sure of these two things:

•             User should have root privileges

•             Package manager should be updated

sudo yum install httpd

Once apche is installed, you can start it running on your VPS:

sudo service httpd start

To verify, you can point your browser to the server IP address and check. If it displays a page which says “It works”, then it is correct.

You can get your IP address using the following command:

ifconfig eth0 | grep inet | awk '{ print $2 }'


Installing MySQL


Let’s start with MySQL installation process. MySQL database management system is used for organizing and retrieving data.

Open your terminal and enter the following command.

sudo yum install mysql-server
sudo service mysqld start

In case if the system displays any messages, press enter. You will be asked to set a root password while the program is installing. In case if you missed the chance, you can set it later from within the MySQL shell.

Next step is to run the secure install script to clean up.

sudo /usr/bin/mysql_secure_installation

While the secure install scrip is running, the system will ask for your MySQL root password. In that case, just hit enter as MySQL root password has not been set.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

When system prompts for setting the root password, type ‘Y’ and enter your new MySQL root password. Below you can see a snapshot of the output screen, while the script is running.

By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them.  This is intended only for testing, and to make the installation go a bit smoother.  You should remove them before moving into a production environment.

Remove anonymous users? [Y/n] y                                             
... Success!

Normally, root should only be allowed to connect from 'localhost'.  This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success! 

By default, MySQL comes with a database named 'test' that anyone can access.  This is also intended only for testing, and should be removed before moving into a production environment.

Remove test database and access to it? [Y/n] y 
- Dropping test database... 
... Success! 

- Removing privileges on test database... 
... Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n] y 
... Success! 

Cleaning up...

All done!  If you've completed all of the above steps, your MySQL installation should now be secure.

Thanks for using MySQL!

MySQL is installed.

Installing PHP


PHP is a programming language for building dynamic web pages.

For the installation of PHP, open the terminal and type in the following command:

sudo yum install php php-mysql

In order to add various useful PHP libraries and modules onto your server, follow the steps mentioned below:

Get the list of libraries available by typing the command:

yum search php-

You will get the output similar to this:

php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Human Language and Character Encoding Support
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
php-imap.x86_64 : A module for PHP applications that use IMAP

You can view more details about the module by typing the command:

yum info name_of_the_module

Now, install the module using:

sudo yum install name_of_the_module

If you need to install multiple libraries, you can do that by separating each module with a space.

Set the processes to run automatically while the server boots:

sudo chkconfig httpd on
sudo chkconfig mysqld on


Verify and Access the Page on your Server


Now that the LAMP stack is completely installed on your system, you may have to verify it by creating a simple php info page.

For that, you need to create a new blank file and paste the following code.

sudo nano /var/www/html/info.php

After saving the file, go ahead and restart apache in order to bring in all your changes.

sudo service httpd restart

Visit your php info page by going to your IP address. It should look similar to this:



Now you are officially done with the installation of LAMP stack on CentOS.

support2 has written 111 articles

Leave a Reply