Installing LAMP on Ubuntu Jaunty (9.04)
For the latest version, check out Install LAMP on Ubuntu 9.10 Karmic Koala.
Why Install LAMP?
Today I'm going to show how to install and set up a LAMP (Linux, Apache, MySQL, PHP) stack on Ubuntu. Why do this? It's useful if you want to set up an off-line web development environment. If you are building websites and experimenting, it's nice to do it in the privacy of your own computer, rather than "in the wild" out on the internet.
Install LAMP
Ubuntu has an easy way to select and install all of the required packages. It's done with the following command.
Don't forget to include the carrot. According to the Ubuntu documentation, it's magical.
Hit <Enter> to confirm you want to install the packages.
Next, you will be prompted to change the password for the root user on your MySQL database.
Enter your chosen password. Enter it again in the confirmation screen.
After some more chugging in the terminal the installation will complete.
Now we need to test the installation and get things configured.
Testing Apache
Open a web browser and enter the address http://localhost/. You should see a webpage displaying the text "It Works!"
Testing PHP
Now we're going to test our PHP installation. To do this we'll create a file called testing.php in /var/www. Open a terminal and enter:
Enter the line below, save the file, and exit the text editor.
Now we need to restart Apache.
Now, open your browser and enter http://localhost/testing.php/. You should see a bunch of information about your version of PHP.
Configuring MySQL
Now we need to configure MySQL to be associated with the IP address of your machine. Since I'm installing the LAMP stack for a web development environment I'm going to bind MySQL to the localhost IP address, which in my case is 127.0.0.1. You can verify this address with:
Edit the my.cnf file to configure the bind address.
Verify that the bind-address line looks like this (adjust for your IP address).
bind-address = 127.0.0.1Install phpMyAdmin
This step is optional, but phpMyAdmin will make it much easier to administer the MySQL databases.
During the installation you will be prompted to select your web server for automatic configuration. Use the space bar to mark apache2 and then hit <Enter>.
You will also be asked if you want to configure phpMyAdmin with a new database called dbconfig-common. Select Yes and hit <Enter>.
Next you'll be prompted for the password for MySQL's administrator. Enter the MySQL root password that you created earlier in the installation. Hit <Tab> to select Ok and hit <Enter>.
Next you'll be prompted to create an application password for phpMyAdmin to talk to MySQL. If you leave it blank, a random password will be generated for you.
After configuring the password, the installation should complete.
Testing phpMyAdmin
Enter http://localhost/phpmyadmin/ into your web browser. You should see a page that looks like this:
You should be able to log in using the username root and the root password that you created earlier.
Your LAMP installation is now complete.
At this point you may want to do some additional Apache configuration.











a very good tutorial... until i tried to access phpMyAdmin. There was a problem with te ,my.cnf' file. i did as written the gksudo gedit /etc/mysql/my.cnf manip.
can i delete MySql without touching PHP and Apache because they are still ok.
thanks
latulipe - The easiest way may be to open Synaptic and search on the installed Mysql packages. Mark them for complete removal (this is supposed to get rid of all settings/preferences files as well) and then go ahead and reinstall those same packages.
thanks for the easy tutorial.
Help!
After installing phpmyadmin, I'm getting a 404 ERROR when I open http://localhost/phpmyadmin/ . It is saying that phpmyadmin was not found on this server.
The remaining LAMP installation was successful.
I found a work-around for the 404 ERROR from the ubuntuforums.
Thanks.
Abhinand - What was your solution?
Thanks, this was the easiest nethod I have come across. Thanks for shareing this with us. I can remember this taking me hours about a year ago. Good job!
sir,
i m getting err like
E: could not get lock/var/lib/dpkg/lock -open(11 resource temporarily unavailable)
E: unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
Bhuvana, it sounds like a package manager was already running when you tried to do the install. Was the update manager running at the time? The install may work if you just try it again.
I also ran into the problem of my browser not finding http://localhost/phpmyadmin .
I solved the problem by typing this in Terminal:
sudo ln -s /usr/share/phpmyadmin /var/www
I tried it, and it worked.
This solution was written by TitanKing in the comments section of this post: http://ubuntuforums.org/showthread.php?t=1036836
Great guide! Thank you. I'm going to tweet it!
Those of you who are finding that PhpMyAdmin will not run directly after installation are skipping over a key line in this tutorial:
"Use the space bar to mark apache2 and then hit ."
You must hit the space bar to mark the "apache2" option with a little asterisk before hitting .
Admittedly, it's kind of a confusing interface.
Benjamin - Thanks for the tip.
Everyone - If you forgot to mark apache2 during the phpMyAdmin configuration, you can re-run this step with the command
sudo dpkg-reconfigure phpmyadmin
Great article, but none of the steps asked for a password and now
http://localhost/phpmyadmin
I get the following message after http://localhost/phpmyadmin
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
or when i do different tests
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
where can I find what is in Connection for controluser as defined in your configuration failed.
Thanks Linerd. Problem solved used
sudo dpkg-reconfigure phpmyadmin
Thank you ever so much. My Comp Engineering teacher wanted a LAMP up and running and this was so easy I had it done in an hour including installing Ubuntu. I can't thank you enough.
it really nice .. i search on many sites but this page provide my need.. thamku!
OK, now that I've installed it. How do I uninstall or remove this lamp-server? It seems everyone is talking about installing it, but I'm not comfortable if I don't know what it installed in my system, I think there are 10-20 packages, how do I remove all of them? Is there a command, a GUI, how do you do it?
superb tutorial!!!
When I go through the configuration of the db for phpmyadmin, I get this error:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
An suggestions?
That one's got me stumped. I haven't seen that one before. If you can't figure it out, you might want to try uninstalling LAMP and start over from scratch.
Hai.,
i had linux 9.04 Jaunty jackalope Os and now i developed my website designs in PHP platform. now i installed LAMP SERVER by the above instruciots. but whenever i pink my http://localhost in browser it displays like that below.,
Forbidden
You don't have permission to access / on this server.
Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.5 with Suhosin-Patch Server at localhost Port 80
Anyone could known to rectify this issue.
Thanks in ADVANCE
Hi
When I tried the first step, the browser automatically points to http://localhost/mythweb/
then gives the following error message
Error
Unable to connect to the master backend at 10.0.1.3:6543.
Is it running?
Everything else seem to run fine. Thanks heaps for the excellent tutorial series.
cheers
Raj
It looks like you have MythTV installed on your system. I'm not familiar with Myth, but it seems like you might need to make some minor adjustments.
Thank you very much.
I went to Synaptic package manager and completely removed Myth TV and all its associated components. It works! Look forward to your next tutorial. Thanks again!
Raj
I forgot the password in my phpmyadmin.. how can i retrieve it?
the only thing I would add is
ubuntu:~/Sites/projects$ sudo a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
For clean URLS and drupal
ooops and thanks for the post!