Menu
Community
By: Etel Sverdlov
142
254
How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu
May 31, 2012
LAMP Stack, Apache, MySQL, PHP Ubuntu
For Ubuntu 12.04 - see this updated tutorial for Ubuntu 14.04.
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 Ubuntu, the linux part is taken care of. Here is how to install the
rest.
Set Up
The steps in this tutorial require the user to have root privileges on your VPS. You can see how to set that up in the Initial Server
Setup in steps 3 and 4.
Step OneInstall Apache
Apache is a free open source software which runs over 50% of the worlds web servers.
To install apache, open terminal and type in these commands:
sudo apt-get update
sudo apt-get install apache2
Thats it. To check if Apache is installed, direct your browser to your servers IP address (eg. http://12.34.56.789). The page should
display the words It works!" like this.
How to Find your Servers IP address
You can run the following command to reveal your servers IP address.
ifconfig eth0 | grep inet | awk '{ print $2 }'
Step TwoInstall MySQL
MySQL is a powerful database management system used for organizing and retrieving data
To install MySQL, open terminal and type in these commands:
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
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.
converted by Web2PDFConvert.com
Once you have installed MySQL, we should activate it with this command:
sudo mysql_install_db
Finish up by running the MySQL set up script:
sudo /usr/bin/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.
Its 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.
converted by Web2PDFConvert.com
Step ThreeInstall 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.
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
After you answer yes to the prompt twice, PHP will install itself.
It may also be useful to add php to the directory index, to serve the relevant php index files:
sudo nano /etc/apache2/mods-enabled/dir.conf
Add index.php to the beginning of index files. The page should now look like this:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
PHP Modules
PHP also has a variety of useful libraries and modules that you can add onto your virtual server. You can see the libraries that are
available.
apt-cache search php5-
Terminal will then display the list of possible modules. The beginning looks like this:
php5-cgi - server-side, HTML-embedded scripting language (CGI binary)
php5-cli - command-line interpreter for the php5 scripting language
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dbg - Debug symbols for PHP5
php5-dev - Files for PHP5 module development
php5-gd - GD module for php5
php5-gmp - GMP module for php5
php5-ldap - LDAP module for php5
php5-mysql - MySQL module for php5
php5-odbc - ODBC module for php5
php5-pgsql - PostgreSQL module for php5
php5-pspell - pspell module for php5
php5-recode - recode module for php5
php5-snmp - SNMP module for php5
php5-sqlite - SQLite module for php5
php5-tidy - tidy module for php5
php5-xmlrpc - XML-RPC module for php5
php5-xsl - XSL module for php5
php5-adodb - Extension optimising the ADOdb database abstraction library
php5-auth-pam - A PHP5 extension for PAM authentication
[...]
Once you decide to install the module, type:
converted by Web2PDFConvert.com
sudo apt-get install name of the module
You can install multiple libraries at once by separating the name of each module with a space.
Congratulations! You now have LAMP stack on your droplet!
Step FourRESULTS: 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:
sudo nano /var/www/info.php
Add in the following line:
<?php
phpinfo();
?>
Then Save and Exit.
Restart apache so that all of the changes take effect:
sudo service apache2 restart
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 similar to this.
See More
After installing LAMP, you can Set Up phpMyAdmin, Install WordPress, go on to do more with MySQL (A Basic MySQL Tutorial),
Create an SSL Certificate, or Install an FTP Server.
By Etel Sverdlov
142
Subscribe
Author:
Etel Sverdlov
converted by Web2PDFConvert.com
Spin up an SSD cloud server in under a minute.
Simple setup. Full root access.
Straightforward pricing.
Related Tutorials
How To Install LAMP (Linux, Apache, MySQL, PHP) on Fedora 22
How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Debian 8
How to Back Up a LAMP Server with Bacula on Ubuntu 14.04
Building for Production: Web Applications Deploying
Building for Production: Web Applications Overview
254 Comments
Log In to Comment
pauldmoran July 30, 2012
converted by Web2PDFConvert.com
On the droplets that have lower memory foot prints (256MB RAM) please note that the default Ubuntu install of MySQL requires the
addition of the line:
innodb_buffer_pool_size = 32M
In the /etc/mysql/my.cnf file to make it start up.
info1 August 17, 2012
pauldmoran
I have Size: 256 Mb | mage: Ubuntu 12.04 x32 Server and havn't needed to change the innodb_buffer and MySQL is running mysql
2759 0.1 13.6 326656 34036 ? Ssl 12:54 0:00 /usr/sbin/mysqld
moisey August 17, 2012
The defaults should be good for the majority of users, we will be writing additional MySQL articles specifically geared towards tuning it
for higher performance and explaining some of the most common tune variables.
2
aladagemre August 22, 2012
For enabling PHP, I think we also have to install this: libapache2-mod-php5
trialtest11 August 22, 2012
Thank you for the recommendation: I have added libapache2-mod-php5 to the tutorial.
madlittlemods September 13, 2012
Thanks for the tutorial! Got my droplet up and running ;)
igor.kandyba November 11, 2012
After adding innodb_buffer_pool_size = 32M to my config solved the annoying PDO error - was unable to connect to the db via socket,
thanks for the advice!
onrweb January 18, 2013
Hi,
I take an error message when I tried to connect MySQL DB from my Play Framework application:
"Cannot connected to the database, Communications link failure The last packet sent successfully to the server was 0 milliseconds ago.
The driver has not received any packets from the server."
and solved the problem like this:
It related with mysql configuration file. You must open /etc/mysql/my.cnf:
sudo nano /etc/mysql/my.cnf
and change bind-address's default value (127.0.0.1) with your ip address:
bind-address = ?.?.?.?
then problem will be solved.
Maybe It can help to some people encounter the same problem.
converted by Web2PDFConvert.com
teddy98891 February 15, 2013
Wouldn't it just be easier to type 'tasksel', scroll down to lamp server, hit spacebar to select it, tab to OK and press enter? It does
everything for you, including prompt for a new mysql password.
mike102855 February 22, 2013
teddy, I much prefer that they give the actual methods for installing these from the cmd line, rather than suggesting an automated install.
You don't learn anything doing it through tasksel.
c0smicalninja March 7, 2013
Instead of using prefork MPM, you can use the worker or event MPM and process php via FastCGI process manager. Instructions are
given here: http://www.failover.co/blog/quick-setup-apache-worker-fastcgi-php-fpm-and-apc
mathsteck March 11, 2013
When I try to install MySQL the follow error appears: "Unable to set password for root...". I already tried to reinstall but without success...
Anyone can help me?
mathsteck March 12, 2013
The complete error: "Unable to set password for the MySQL "root" user. An error occurred while setting the password for the MySQL
administrative user. This may have happened because the account already has a password, or because of a communication problem
with the MySQL server."
showfom April 26, 2013
tasksel install lamp-server
it's very simple in Ubuntu
bailet3 April 28, 2013
I don't know about you guys but I prefer to install LAMP in a single click after reading about other methods.
Don't know if you are allowed to link to other guides here or not but this one seemed to help as it had alot of screenshots,
http://draalin.com/installing-lamp-on-ubuntu/
They had two different installation methods there too which was nice.
eliot June 3, 2013
Followed these directions to the T with a clean droplet. Getting this error during the apt-get installs:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
The server appears to be working correctly, though.
johnellison July 16, 2015
converted by Web2PDFConvert.com
I had that error as well. Go to
and type
sudo nano servername.conf
and in that file add the line
ServerName localhost
save and exit.
Then go ahead and type this command to active the configuration file
sudo a2enconf servername
and restart apache.
helvatican October 6, 2015
Hmm .. I see your "I had that error as well. Go to" but no following argument. Goto where?
laviniamanzanares June 5, 2013
This is really useful. Thank you
kamaln7 June 8, 2013
@Eliot Landrum: That is just a warning, you can ignore it --everything will work just fine.
nogbor June 8, 2013
converted by Web2PDFConvert.com
@Eliot Landrum: If you want to get rid of the error then edit /etc/hosts
sudo nano /etc/hosts
Change the file to read:
127.0.0.1 localhost
'IP' 'server name' 'hostname'
For example if your droplet is on IP 12.34.56.78, your Domain is 'example.com' and hostname is 'myhost' then it will read:
127.0.0.1 localhost
12.34.56.78 example.com myhost
Save this file and then edit /etc/hostname
sudo nano /etc/hostname
Delete whatever is in this file and type in your hostname (myhost in the example above)
Save the file and reboot and the warning should be gone
HTH :-))
*Can an admin delete my reply above as it stripped the important bits out*
Load More Comments
This work is licensed under a Creative
Commons Attribution-NonCommercialShareAlike 4.0 International License.
Copyright 2015 DigitalOcean Inc.
Community Tutorials Questions Projects Tags RSS
Terms, Privacy, & Copyright Security Report a Bug Get Paid to Write
converted by Web2PDFConvert.com