Tutorial

How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Debian

Published on October 5, 2012
How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Debian

About LAMP

LAMP stack is a group of open source software used to get web servers up and running. The acronym stands for Linux, Apache, MySQL, and PHP. Since the virtual private server is already running Debian, the linux part is taken care of. Here is how to install the rest.

Set Up

Before running through the steps of this tutorial, make sure that all of your repositories are up to date:

apt-get update

With that completed, go ahead and start installing the LAMP server.

Step One—Install Apache

Apache is a free open source software which runs over 50% of the world’s web servers.

To install apache, open terminal and type in these commands:

apt-get install apache2

That’s it. To check if Apache is installed on your VPS, direct your browser to your server’s IP address (eg. http://12.34.56.789). The page should display the words “It works!" like this.

How to Find your Server’s IP address

You can run the following command to reveal your VPS's IP address.

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

Step Two—Install MySQL

MySQL is a widely-deployed database management system used for organizing and retrieving data.

To install MySQL, open terminal and type in these commands:

apt-get install mysql-server

During the installation, MySQL will ask you to set a root password. If you miss the chance to set the password while the program is installing, it is very easy to set the password later from within the MySQL shell.

Finish up by running the MySQL set up script:

 mysql_secure_installation

The prompt will ask you for your current root password.

Type it in.

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

Then the prompt will ask you if you want to change the root password. Go ahead and choose N and move on to the next steps.

It’s easiest just to say Yes to all the options. At the end, MySQL will reload and implement the new changes.

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...

Once you're done with that you can finish up by installing PHP on your virtual server.

Step Three—Install PHP

PHP is an open source web scripting language that is widely use to build dynamic webpages.

To install PHP, open terminal and type in this command. Note: If you are on a version earlier than Debian 7, include php5-suhosin as well.

 apt-get install php5 php-pear php5-mysql

After you answer yes to the prompt twice, PHP will install itself.

Finish up by restarting apache:

service apache2 restart

Congratulations! You now have LAMP stack on your droplet!

Step Four—RESULTS: See PHP on your Server

Although LAMP is installed, we can still take a look and see the components online by creating a quick php info page

To set this up, first create a new file:

 nano /var/www/info.php

Add in the following line:

<?php
phpinfo();
?>

Then Save and Exit.

Finish up by visiting your php info page (make sure you replace the example ip address with your correct one): http://12.34.56.789/info.php

It should look something like this:

By Etel Sverdlov

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
10 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

in debian one command line to complete LAMP installation

apt-get install apache2 php5 mysql-server phpmyadmin

Kamal Nasser
DigitalOcean Employee
DigitalOcean Employee badge
January 6, 2014

@arabia: Try clearing your browser’s cache. Make sure nginx is stopped and is completely removed: <pre>sudo apt-get remove nginx sudo apt-get autoremove sudo service nginx stop sudo service apache2 start</pre>

Kamal Nasser
DigitalOcean Employee
DigitalOcean Employee badge
August 17, 2013

@emilio_b2002: Most of the Ubuntu articles should work fine in Debian, since Ubuntu is based on Debian. Give it a shot – let me know how it goes :]

Kamal Nasser
DigitalOcean Employee
DigitalOcean Employee badge
July 10, 2013

@kevin: The ‘php5’ package includes ‘libapache2-mod-php5’ if I recall correctly, so there is no need to install the package separately.

If you are using Ubuntu you may need to add the libapache2-mod-php5 package. If you dont you may end up seeing php printed in plain text as alextoma has pointed out.

apt-get install libapache2-mod-php5

You may need to run

‘’’ apt-get install libapache2-mod-php5

as well if you are running ubuntu

how to install lamp-server using sudo apt-get install lamp-server^

Did you try to turn it off and on?

Sounds like a joke but I’m talking about apache service, if you don’t restart the apache2 service instance the php interpreter won’t work…

Etel Sverdlov
DigitalOcean Employee
DigitalOcean Employee badge
February 14, 2013

As long as php is installed, this should not happen. Where you able to download all of php packages in this command?

<pre> apt-get install php5 php-pear php5-suhosin php5-mysql</pre>

I would also like to add the right permissions to the /var/www/ folder. Info collected from here

mainly these 3 commands are required:

sudo adduser $USER www-data
sudo chown $USER:www-data -R /var/www
sudo chmod u=rwX,g=srX,o=rX -R /var/www

without them I could not save the info.php file

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.