Installing LAMP on Ubuntu

Why would I want to install and set up a LAMP(Linux, Apache, MySQL, php) stack on Ubuntu? It’s useful if you want to set up a private web development environment. Perhaps you want to develop your own WordPress theme. If you are developing websites and experimenting, it’s nice to do it in the privacy of your own computer, rather than out on the public internet.

Install LAMP

The Ubuntu developers have created a very easy way to install a LAMP server on an existing system. It’s all kicked off with this one simple terminal command.

sudo apt-get install lamp-server^[/code]
Note: Please make note of the caret (^) in the above command, it's not a typo, it's required to make the command work.

The apt package manager will show all the packages that need to be installed. Hit <Enter> to confirm that you want to install them.

You will then be prompted to change the password for the root user on the MySQL database.

Setting root password for MySQL

Enter the password you want. You'll be prompted to enter it a second time to confirm.

After you confirm your password, apt will continue to install the rest of the packages.

Lamp installation is complete

Congratulations, your LAMP installation is complete! That was the easy part, now you need to get things configured to make the system easy to work with.

Test Apache

Open a web browser and enter the address http://localhost/. You should see a web page that says"It Works!"

Apache works!

Testing php

Now that you know Apache works, it's time to test the php installation. You'll need to create a file in/var/www called testing.php. Open a terminal and enter:

gksudo gedit /var/www/testing.php[/code]


kdesudo kate /var/www/testing.php[/code]
Enter the following line into the text editor, save the file and exit.

<?php phpinfo(); ?>
Creating testing.php

Next, restart Apache with the following terminal command.

sudo /etc/init.d/apache2 restart[/code]
Now go back to your web browser and enter the address http://localhost/testing.php/. You should see a page displaying version information for your php installation.

Testing php - it works!

Configuring MySQL

Since I'm installing LAMP for a web development environment, I want to bind the MySQL database to the localhost IP address. This should be for your system. You can verify it with this terminal command.

cat /etc/hosts | grep localhost[/code]
You'll now want to verify that the correct bind address is set up in the my.cnf file.

cat /etc/mysql/my.cnf | grep bind-address[/code]
You should see a line that looks like

bind-address		=[/code]

If the IP address doesn't match the one for your system, you'll need to edit the my.cnf file to correct it.

Install phpMyAdmin

You don't need to install phpMyAdmin, but it's a much easier way to get in and muck around with things in your MySQL database if you're not familiar with the MySQL commands. You can install phpMyAdmin from the command line with

sudo apt-get install libapache2-mod-auth-mysql phpmyadmin[/code]
The installation will prompt you to select a web server for automatic configuration. Use the space bar on your keyboard to select apache2 and then hit <Enter>.

Configure phpMyAdmin for Apache2

Another screen will come up asking if you want to configure a new database called dbconfig-common.  Since this is a fresh installation, use the <Tab> key to select Yes and hit <Enter>.

Configure dbconfig-common

You'll be prompted next to enter the MySQL root password. Enter the MySQL root password that you created earlier, hit <Tab> to select Ok and hit <Enter>.

Enter MySQL root password

You'll then be prompted to enter a MySQL application password for phpmyadmin. You can hit<Enter> and a random password will be generated. I chose to use the same password that I used for the root MySQL password. If you enter your own password, a password confirmation screen will come up. Confirm your password.

MySQL application password confirmation

The phpMyAdmin installation is now complete.

Testing phpMyAdmin

Open your web browser and enter the address http://localhost/phpmyadmin/. You should see a page like this.

Testing phpMyAdmin

You can log in with the username root and the root password that you created earlier.

Allowing Passwordless login to Phpmyadmin

Note that if you had set an empty password during config, you will get a message like this when trying to login to Phpmyadmin:

To fix this,
kdesudo kate /etc/phpmyadmin/[/code]

/* Uncomment the following to enable logging in to passwordless accounts,
* after taking note of the associated security risks. */
// $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;[/code]

/* Advance to next server for rest of config */

Remove the two "//" in front of the last line so that it becomes:

/* Uncomment the following to enable logging in to passwordless accounts,
* after taking note of the associated security risks. */
$cfg['Servers'][$i]['AllowNoPassword'] = TRUE;[/code]

/* Advance to next server for rest of config */

phpMyAdmin home screen

Congratulations, you're now ready to start building your local website. If you're only working on one site you can put all of the files into /var/www.  If you'll be working on multiple sites you may want to consider some additional Apache configuration to keep things neat and clean on you system.