Recently I have been asked by friends, colleagues and even family, how to install and configure a “development or testing” area on their personal computer (localhost). Because I have been asked to do this and each time I end up searching the Internet for guides and help, I thought that it would be a good time to condense what I have found, learned and know to be an ideal setup for a localhost environment.
I have set this post up differently then others that I have seen. I have broken the parts into sections and have linked to those sections so that if you need to come back for help on just one area you can jump to that section/area of the post.
Let me give guidance to those people who run Windows and even Mac OSx:
Windows Users
I would recommend you use a program called XAMPP. XAMPP is a great program and can be installed on all OS platforms (Linux, Mac and Windows). You can download a executable file from XAMPPs Site
Mac OSx Users
I would recommend you use a program called MAMP. MAMP is also a great program for the Mac users. It makes it easy for the users to get things done. You can download the dmg from the MAMP Site
Linux Users
Let’s get started since this post is for you.
Install Apache
Install MySQL
Install PHP
Installing Apache
Everything that I suggest here will be done through terminal. To launch terminal follow these steps:
Application -> Accessories -> Terminal
- Once terminal is open type or copy the following command:
sudo aptitude install apache2 - Answer any questions that arise as you see fit. Once the process is finished installing you will need to test that the installation worked. To do this open another tab in your browser and in the address bar type localhost (link to help http://localhost). You should see the text “It works” and that means you have installed Apache2 correctly
NOTE:
If at the end of your installation you get an error or a message inside the terminal window that says “Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName” you can fix this by running the following command in terminal.
gksu gedit /etc/apache2/conf.d/fqdn
You might need to enter your password before the file will open. This command will open a file in gedit (a text editor for Linux).
- When gedit opens, type “ServerName localhost” (without the quotes) inside the file and click Save.
- Close the file.
Installing MySQL
Everything in the MySQL section will be done through the terminal window. To launch terminal follow these steps: Application -> Accessories -> Terminal
- Once terminal is open type of copy the following command:
sudo aptitude install mysql-server libapache2-mod-auth-mysql php5-mysql - Near the end of the installation you will be asked to give a user name and password for MySQL
If you leave the user name blank it will default to “root”
That is it. At this point you should now have MySQL installed an running on your localhost. You can test this by typing mysql in the terminal window. If all is setup correctly you should get a “Welcome to MySQL monitor. Commands end with ; or \g.” and a prompt that says mysql>. From here you can run your mysql commands.
Installing PHP
Everything in the PHP section will be done through the terminal window. To launch a terminal follow these steps: Application -> Accessories -> Terminal
- Once your terminal is open type or copy the following command:
sudo aptitude install php5 php5-common libapache2-mod-php5 php5-gd php5-dev curl libcurl3 libcurl3-dev php5-curl - After everything is installed you will need to restart Apache for the server to see and implement PHP
sudo /etc/init.d/apache2 restart - You can now test to see if PHP5 is working with Apache. To test if PHP is installed you can create a .php file inside your /var/www/ directory
sudo gedit /var/www/test.php - The command will open gedit (Linux text editor). Once gedit is open type in the following code:
<?php
phpinfo();
?> - Open a new tab in your browser and in the address bar type localhost/test.php (link to help http://localhost/test.php)
After running step 5 you should see your PHP Info page. This page will display the settings of your PHP configuration file and what is available via Apache2, MySQL and many other settings you may not care to know about. But the thing is if you see the PHP Information page you have successfully set up PHP5 to work with Apache.
Congratulations, I hope this means you have been able to install one, two or even all three of the items outlined in this post. If everything has worked out correctly you know have a local environment to develop on. Good luck and have fun.
If you have questions please leave a comment.

I decided to upgrade my Ubuntu from 9.04 to the most recent release. The most recent being 9.10 Karmic Koala. Usually I tend to wait for a month or so to give the developers some time to fix stability, bugs and any other issues that arise. But all the reviews I was reading about and hearing from friends that it was a really good release, I just couldn’t wait.
(for those who don’t know “Clippy” is a Microsoft Mascot. Even though I use Linux I still call it “Clippy”). Any way so my clippy has been bent so that I can shove one end into the Rom hole to eject it.
I went to ask my friend what the heck and what can I do. He had the answer he always does. He is a great friend. I am sure you know him and probably ask him questions too. His name is Google. I take no credit for having the answer. Google lead me to many other friends that did have the answer. Some thought they did but did not (for instance it is just common knowledge to install libdvdcss2), and others did have the answers but only parts. So I am writing this so that if you find this post you will have all the answers from all those people in one place. I found the answers out there in the world but it took a lot of time and many trials and errors.