My roommate asked me to create a website for his upcoming wedding. Well, I decided it would be a good opportunity to attempt to host my own website. I didn’t know where to begin, but I knew what I had. I had an extra computer that had a 2.4 GHz processor, 512MB RAM, and a 160 GB hard drive running Windows XP Professional SP2. Now, you don’t need two computers to do this, but I had the luxury.
There is a little bit of leg work, but I promise that you will learn a ton; and it will be a very rewarding experience.
What Needs To Be Accomplished
Here is a list of items that needed to be taken care of in the scope of this project.
- Set up Apache, PHP, MySQL (my native design environment).
- Get a domain name and point it toward my box.
- I also need to configure FTP to do remote changes.
- Set-up e-mail.
Setting Up the Server Environment
I found a good tutorial at Lifehacker, but I need some additional information. To set up my Apache, PHP, and MySQL I needed a WAMP (WindowsApacheMySQLPHP). I tried many, but I found that WAMP5 was by far the easiest to use. While packages like XAMPP have more “stuff” I could never get it to work.
Go download WAMP5 and run the install. You can choose where to install it, but I would suggest on our C: (or maybe partition a drive just for this). You should then go to http://localhost/, and you should see the WAMP home page.
Here is where you should pause and create all of your content. Create a directory under [WAMP Path]/www/, and that is where you can create your application.
Configuring Your Router
Now that your application is ready to go online it’s time to get a domain name! First, we need to configure your router for port forwarding or else no one will get to it.
I use a Linksys router, but you can Google how to port forward on your router and firmware. I went to my router’s admin section which for Linksys was http://192.168.1.1/. I then went to “Applications & Gaming” and put in the following values for both HTTP and FTP.
The HTTP box is from port 80 to 80, and I assigned it the IP of the computer I want to forward to (to find your IP go to Start — Run — Type “cmd” (no quotes) — Enter — Type “ipconfig /all”). I also put in the values for FTP which is from port 21 to 21. Remember to check the “Enable” checkbox for both settings and save your changes.
Getting Your Personalized Domain Name
I would suggest going over to DynDNS to grab a domain name. You can get a free forwarding address, but if you want your own domain name you’ll have to pay for it (it’s worth it).
Create an account, and go to Services — Custom DNS. Go through their wizard to purchase your domain name. After your purchase goes through then we’ll need to point your domain name towards your local computer. Go to Services — My Zones and click on your domain name. When you get the options dialog then enter your external IP (get it the same way you get your local IP). If you’ve set your IP to be static or dynamic then choose accordingly (there is no reason to not use a dynamic IP, because DynDNS has an application to dynamically update your settings which I’ll show you).
Be sure to make sure that “Put Online” is selected in your WAMP menu (image above). After a few hours it will resolve, and you will see your website on the WWW! If you selected a dynamic IP then go grab the free IP update client for DynDNS and configure it.
Oh wait, there is one more important step! We need to add an alias on your Apache server to tell the server where to forward requests. Get the WAMP menu (right click on the taskbar icon), and go to Config Files — httpd.conf. This is where we will add an alias for your new domain. (I should tell you that you can get a GUI editor similar to IIS for Apache, but it is shareware.)
Scroll to the bottom to where you see the Virtual Host example. You will add the following information. This tells the server to listen on port 80 for requests made with a certain domain name, and when that condition is true it forwards it to a local directory on your server.
ServerName www.yourdomainname.com DocumentRoot [WAMP directory]\www\yourprojectfolder
FTP and E-mail
You’re doing good! Hang in there! You now have a working domain name, but you’ll want to add FTP capability and maybe e-mail as well. For the FTP simply download the FileZilla Server. In there you can create users and assign appropriate permissions.
As for e-mail, instead of trying to set up your own POP/SMTP server why not get Google to do it for you? Google has free apps for your domain that you can utilize. Simply sign up for a free account, and configure the Gmail section. There is a tutorial in there where you’ll have to add MX records in your DynDNS configuration panel, but it’s painless. Now you can set up accounts that have 2GB of storage and use the Gmail interface!
Congrats! You are done! For only $40 you have your own server, personal domain, e-mail, and FTP! If you have questions be sure to provide plenty of information in the comments, and I’ll attempt to steer you straight.