The first service we will install is a web server because it is typically the main purpose for an Internet node. It is your “HTTP service” that establishes the network presence of a website and responds to browser requests. Fortunately, this is one of the easier services to set up.
You have many choices for HTTP servers ranging from free software to expensive software from reputable companies. Since we are doing this project on the cheap, let’s check out the free software.
Of all of the free software, the one with the greatest traction (almost two thirds of all websites) and ongoing support is the open source HTTP server project from Apache Software Foundation. Some readers may wonder – isn’t Apache’s server for Unix and Linux systems? Not quite. Historically, Apache’s best running version has been the one for Unix/Linux with the Windows version somewhat of an experimental poor cousin. However, years of development have yielded a fine Windows-based Server every bit as good as the original.
Go to the Apache’s website and read about their HTTP Server Project. You will see that there are essentially three versions of their HTTP server for Windows, versions 1 and 2.0 and 2.2 (ignore the notes for Linux and Unix as those are different operating systems). Apache HTTP Server 1.3.xx (‘xx’ is some number representing the current release) is an older release that is only now supported for bug fixes and security plugs. Apache HTTP Server 2.0.xx is a newer, more feature rich version, and Apache HTTP Server 2.2.x is a major new release with many added features.
While some techies might jump right into 2.2.x, I was a bit more conservative. 2.0 is a serious improvement over 1.3, and it has several years of stability and security bulletproofing, therefore, version 2.0 is the one that I recommend today. Besides, my notes that follow are all based on version 2.0, so if you decide to go with 2.2, you’ll have to translate my notes accordingly, and hopefully you won’t run into any serious conflicts.
At this point, I feel that I should add a **Warning**: This project is educational and is direct towards amateurs wanting to set up their own Internet node and learn the details about web and email servers and the like. If you are really concerned about reliability, uptime, providing services to clients, security, etc., then you might consider having your service hosted by a mission critical ISP, you know, the one with a data center with 24 x 7 support? Hey, don’t complain later that your site went down while you were vacationing in Jamaica! (Actually, there are tools for that — I will try and make a “vacation support” post at some point.)
Okay, we are at the point where we download and install the Apache 2.0.xx HTTP server. Go ahead and do that, run the install and check back here.
Once you have installed the server, you should have an entry in you Start Programs folder for activate the Apache HTTP server. You might also have an icon on your desktop. Either way, start the service. That’s it! You now have you own web server running! To try it out, go to your browser on your Internet node PC and type in “http://localhost” and see the Apache server’s default home page.
Of course, you will want to change the contents of that home page. So, let’s do that now but creating a simple HTML web page. Open up wordpad or some other Windows-based text editor and type in the following:
<title>My First Free Web Page!</title>
<p>This is my <em>very first web page</em> for this website.</p>
<p>Click <a href=”http://www.google.com/”>here</a> to go to Google.</p>
Hopefully I am not going overboard by throwing in some html language elements. If you already know HTML, then that is a good thing, and you will recognize the above example as being a crude minimum page where I define a header with a title which will appear in the title bar of a browser’s window and a body which contains some simple text and a hypertext link to the search engine Google. Knowing HTML at this point isn’t that important if you already have a website and are just going to port in over, or if you have a friend or employee who takes care of your HTML. Still, if you would like to learn more about HTML, there are numerous HTML references and resources on the web.
Save this file as “index.html” in the apache’s default folder located in the folder:
C:\Program Files\Apache Group\Apache2\htdocs
Now, when you type in “http://localhost/” into your browser window, you should get your new web page or an error if you typed it in wrong. By editing this file or by using a variety of HTML editing tools, you can transform this web page into a spiffy looking home page for yourself. In the next part, we will show you how to port over existing website files you may already have.
Okay, remember your IP address? If you go to another PC attached with access to the Internet and in a browser you type in your IP address in the format “http://188.8.131.52″ (where you substitute your four numbers), you should also get your sample website home page.
If you recently set up a domain and it has been 1 or 2 days, you can try entering the domain name into the browser (e.g. “http://www.yourdomain.com”) and see what you get back. If the domain name has not rippled through the DNS system yet or if your DNS record has been incorrectly set up, then you will get an error. Otherwise, you may get your sample website page. If so, then congratulations are in order! You have successfully set up a domain name and its corresponding website.
Let me point out a few rough edges here. First off, we are using the default Apache folder which is okay but not great in terms of organization and security. Also, we haven’t fine-tuned the server’s parameters for our site as we just left them at the defaults so certain server abilities are not available to us (yet). In the next several parts, I address these issues and show you how they can be resolved.
Next Up: Free Internet Node, Part 4 – Porting my Existing Website and DNS