The Hidden Grotto
Servers: A three part compendium

Part One: A Neophyte's Introduction | Part Two: Composition | Part Three: Reference Repository


Part One: A Neophyte's Introduction

Planning

First thing first. You need to figure out what you want to do with your server. Any service you have used on the internet, you can also give to others through your server. Be it game hosting, email, irc chat, webpages or even internet radio; you can do just the same with your server. Give yourself some time. Think about the services you want to be provide and what you might like to get in return.

Requirements:

  • Domain name
  • Connection
  • Network
  • Server Hardware
  • Server Software

Domain name

All internet services have some sort of name such as "Penny-arcade.com" or "Sirlion.net". You, likewise, need an identity which people can relate to. Think of what you would like to call yourself. Whatever you come up with should be used as your domain name.

How it works

Everyone on the internet has an address. This address is four numbers seperated by decimals. If you have access to the internet, you will have one as well. To find it, go to your start menu and click "run". Type in "command" and click OK. A black box should appear with a command prompt. Type "ipconfig" and press enter. You should see your IP adress, the subnet mask and the default gateway. The latter two will be discused later on, but right now, we will focus on the IP adress and what it has to do with your domain. (To exit command prompt, type "exit")

A domain name is just a string of letters or words that are associated with a server's IP adress. Because it would be too difficult to memorize every website by it's IP adress, we use these domains instead. For example: "Sirlion.net" is a name that represents the address, "205.234.174.130". In fact, you can type this number into your browser and get the same webpage.

So, how does your browser find out what domain goes with what IP address? The domain references are stored on a DNS (Domain Name Server). If you type a webpage into your browsers adress bar, it will access your ISP's (internet sales provider) DNS server and request the apropriate number. If your ISP DNS doesn't have the reference, it will tell your browser to go to the root server. The root server is a server with a complete listing of all the domains.

To make things even more confusing, there are also different levels of domains. They are the sections that are separated by dots ("."). The highest level is called a top level domain. These are the .coms, .nets and .orgs that you see on the end of every site you go to. There are many more types of top level domains as well. Their main purpose is to represent a specific type of server. They catagorize websites into groups so that the end user can better understand a website's purpose. For example:

  • .com Commmercial sites
  • .org Organizations
  • .net A network

They can also be an alternitave for a domain name that has already taken. If you had a news organization called "freemorningpress" and "freemorningpress.com" was already taken, you could use "freemorningpress.org". Not only would it let you keep the specific name you want, but you can also catagorize your site into a faction that defines your site more acurately.

The next step down is the individual server's domain name. This is the name you pick; the "sirlion" part of "sirlion.com". Anything under that is done with a person's own computer or network. Many colleges and universities have sub-domains under their original domain. A good example of this is "maps.google.ca". "Google.com" is the domain name which takes you to their server, but they've added an extra domain under their own called "maps". Provided you have the right software, you too can make extra domains that go before your internet domain. You can have as many as you want. Ultimately, you can become a DNS server that other people use to access for all your sub-domains. However, making a DNS system can be very difficult and probably isn't needed for any internet services you intend to provide.

Registration

Now to register your domain. You will need to go to a domain name registrar. Some good ones are godaddy, Network solutions and register.com. These companies will put your domain name on a root server database and you will give them an IP adress. So, then when anybody on the internet types in "(yourdomainname).org" in their browser, they will be directed to the IP adress you have given the registrar (which will be your computer's IP adress). Also, you can choose from any of the different top level domains when you go to a registrar (.com, .ab, .ca, .org, etc.).

Connection

If finding the right internet service wasn't hard enough, it can become considerably more complex when finding one for your server. There are many more factors involved with servers which you might want to keep in mind. They can be trivial and don't matter for people who just want to make a website, but if you have larger plans for your server, then it's a good idea to have a pre-set plan for every aspect of your connection.

Terms of service

Many ISP's do not allow you to use a server on a regular internet connection. Most of the big companies like Shaw or Telus even block ports that servers use to send services to the internet. To be allowed to have a server, you'll have to buy a "business", or "server" package. These packages are usually the exact same thing as your normal internet connection. They just feel the need to pursicute people who are ambitious. Many people use much more bandwidth using P2P programs or bittorrent, however, it's easy to pinch the more aspiring individuals.

Static/Dynamic IP adress

One of the biggest questions is if you want a static IP adress or a dynamic one. Basically, your internet provider can either give you an IP adress that never changes or one that will be changed around when the ISP sees fit. Having a dynamic IP adress won't matter at all with a normal connection to the internet because your computer will automatically request the new IP adress whenever the ISP changes it. However, this change can be very annoying for a server due to the domain name being asociated with it's IP address. If your IP address changes, whenever somebody types ".org", they will go to the old IP address and won't be able to get to your server.

To get around this, you can go to a domain name management service. A very good example of this is zoneedit.com. These places allow you to give them your IP adress along with your domain name and they give you a nameserver reference. This way, the DNS will tell anybody looking for ".org" to go to your domain name management service. Now, whenever your IP address changes, you can just go to your domain name management service and update the IP adress to your new one.

Multiple IP adresses

If you want to have more than one domain, you'll need more IP adresses. Let's say you want to have two websites such as (yoursite).com and (yourothersite).com. Since the domain name will only refer to one IP adress, you'll need a second one to route your users to the second site. However, you do NOT need to have multiple IP adresses to have multiple services or webpages. Your server's webpage adress is listed after your domain name. So, if you have a homepage and a FAQ's page, your homepage would look like: "yoursite.com/homepage.html" and your FAQS page would be listed as "yoursite.com/faqs.html". If you had two gameservers running simutaniously, you would just need to make sure each one used a different port (i'll explain ports later).

Speed and quantity

Speed on the internet is usually measured in Megabits per second (Mbps); a megabit is a million bits. However, some programs and applications use kilobytes per second (kB/s, or K/s); a kilobyte is a thousand bytes. If you want to compare the two, just remember that one byte is eight bits. There is an upstream (upload) speed and downstream (download) speed. Be sure to ask about all of these. Most ISP's also have a limit on how much you can upload and download, which is just quantity. Many ISP's let you get away with around 50GB a month. Keep in mind that the best way to guage your server's transfer rate is to go to a friend's house and access your service from there.

Network

Networking is sometimes considered as a whole other realm by it's self. For instance, a webserver usually consists of a router, a firewall and a computer. However, there are many different elements of even this basic setup. There are networking programs to research, protocols to configure, IP/TCP settings, workgroups to set up, server operating systems to maintain....just too much to list. It can be very daunting at times and sometimes just plain frustrating.

However, there are some subtle basics which we will focus on that will help get you through the setup of your first server. They are:

  • Routers
  • IP/TCP
  • Other Protocols

If you want to go further down the rabbit hole, though, I will have a complete networking section hopefully by the end of december. So, don't forget to check back

Routers

A router is like a miniture computer. However, unlike most computers, it has more than one network. Usually, one is a wide area network (WAN) and the other is a local area network (LAN). The WAN is the connection to the internet (usually) and the LAN is the connection to your internal network. It is also called a gateway; a bridge between the internet (or another network) and your own local network. In between the gateway, there is usually a firewall that regulates information going from one side to the other. To find the specifics on that firewall, check the box or call the manufacturer.

Whenever you connect your computer to a router, your computer is assigned an IP adress by a program called DHCP. This program, a part of IP/TCP, is in charge of setting up IP adresses on unknown computers. If the unknown computer has DHCP or knows what the DHCP request is, then that computer will change it's IP configuration to the one that it has been assigned to. However, many administrators prefer to have this turned off, as it is usually better to assign all the IP adresses on your LAN by yourself. This way you know every PC's IP adress and won't have to worry about it being changed by DHCP. To turn this off in windows, go to your control panel and select your network connections. Double click the "local area connection" which you want to adjust for the network. Click the properties box and then highlight IP/TCP settings in the new window. After that, click on the "use following ip adress" radio button. Then, you can set a customized IP adress for your network. However, before you go around changing your IP/TCP settings, lets discuss it a little further.

IP/TCP

IP specifies the format of packets and the addressing scheme. Most networks combine IP with a higher-level protocol called Transmission Control Protocol (TCP), which establishes a virtual connection between a destination and a source. IP by itself is something like the postal system. It allows you to address a package and drop it in the system, but there's no direct link between you and the recipient. TCP/IP, on the other hand, establishes a connection between two hosts so that they can send messages back and forth for a period of time.

If you go back to your IP/TCP settings, you should see three settings: IP adress, subnet adress, and default gateway. You already know what your IP adress is. Let's focus on the subnet mask.

The subnet mask determines what subnet a machine belongs to, as well as masking any other numbers on the machine's IP adress for privacy and security. There are subnet levels A, B, C and D (A.B.C.D) for each number of the IP adress. In a LAN, the router almost always sets the first three automatically. This default IP adress, universally known, is 192.168.1.X; X being your network's subnet. So, each computer will be assigned "192.168.1.(computer's number)". All computers on the network will then use 255.255.255.0 as a subnet mask. 255 is the code that tells the computer that this subnet isn't a part of the desired subnet. The 0 flags the subnet as the right subnet to look at. Therefore, subnet mask 255.0.0.0 would only flag 168, 1, 1 in the IP adress, 192.168.1.1.

In most instances, the subnet is almost always 255.255.255.0. The only time you would need something different is if you had more than 255 computers on one network. In this case, the subnet mask would look like 255.255.0.0 so that you could have up to 255 networks and 255 computers on each network.

The next option is the default gateway. This is just the LAN IP adress of the router/computer that acts as a gateway to the internet (or bigger network). Be carefull not to type in the WAN IP adress (the one the ISP gave you) as your computer will only search your LAN for the gateway computer and give up. Look at your router's instruction booklet to find what number your router automatically assigns it's self, then enter that number into your default gateway settings. Once you have all these settings in all your network computers, you'll be able to talk to everyone else on the network.

Other Protocols

Every time you pass information from one computer to the next, you use a protocol. Simply put, a protocol is just a language that computers use to communicate. The data is sent on virtual channels called ports. Most protocols have default ports. For example, a language called HTTP, which is the protocol for web browsing, uses port 80. When you go from site to site, you don't have to specify that you want to use port 80 because your browser does it automatically. So, to sum up the main port defaults:

  • 21 (FTP)
  • 23 (TELNET)
  • 25 (SMTP)
  • 80 (HTTP)
  • 110 (POP3)

File transfer protocol (FTP) is the language that is used for downloading and uploading from other computers. For example, if you download something from a webpage, your built in FTP client intergraded into windows starts up and starts receiving the file information.

Telnet is a protocol that lets you login to another computer. Provided you have permission and/or a password and username, you are given access to a command prompt that lets you play around in a matrix on another computer. It is most likely to be used by program developers and anyone who has a need to use specific applications or data located at a particular host computer.

Simple Mail Transfer Protocol (SMTP) is used for outgoing email messages sent from your computer to a specific server. It is the format in which email clients, such as outlook express, talk to each other. Post Office Protocol (POP3) is what is used to retreive emails from a server. Each protocol uses a different port due to the amount of bandwidth taken by the rapid use of email.

HyperText Transfer Protocol is the underlying protocol used by the world wide web. HTTP defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web server directing it to fetch and transmit the requested Web page.

Keep in mind that IP/TCP is a protocol too. It is the protocol that all others work with. It's the backbone of any transfer and routes all other protocol communications. So, why doesn't IP/TCP have a port? Well, that's because ports are a part of IP/TCP. A program will give a command to IP/TCP to relay it's information as a certain number. This number doesn't physically exist. It's just a channel so that a computer can have multiple communications, kind of like TV channels.

Server hardware

So, how powerfull does your server need to be? Suprisingly, not very powerfull at all. If you have an old computer kicking around, you're usually good to go. In fact, all you need is enough power to run your server's operating system. The reason web servers are so easy on resources is that they're dedicated to only one or two jobs and they really don't send that much data at all. Unless you are using your server for file sharing or streaming media from it, all that you will upload is a few emails or HTML documents. The only thing to watch for is database systems such as SQL and Access. They can get pretty hefty.

Now, although your server can be easy to set up with minimal needs, there are still a few things to watch out for. First, you'll want to consider backup safety and failsafe systems. Many servers run dynamic software which changes and adapts, depending on people who access it. This could be everything from forums powered by SQL databases to gameservers which keep track of gamer statistics. These servers don't save every time an action is done, and in effect, may loose piles of data if something went wrong. For this reason, big businesses buy industrial standards of ram that are garenteed never to fail and SCSI hard drives which copy themselves to other drives, just in case one goes down. Therefore, if you have a server that collects information from people on the internet for storage in a database, it would be a good idea to think about implementing some extra precautions.

Surge protectors and backup power supplies are also a good investment. You can never tell when you'll get a power outage and power surges can be even more devastating. Sometimes surges can fry your whole computer, so not only will you loose your unsaved data, your hard drive might be destroyed as well.

Server Software

This is where all of the fun, tears, and gnashing of teeth really beguins. With such a complex array of web-programs, operating systems and Databases, it's sometimes hard to even begin. On top of that, there are compadibility problems, program bugs and security issues as well. However, with a lot of help from books, google and web-forums, you should be able to do anything you want.

Operating systems

First of all, you want to pick a type of operating system (OS). Be sure of the OS you want to use, for each type has a completely different composition. Not only is the software different, but the business agendas and fundamentals vary as well. There are three main server operating systems available:

  • Mac OS X Server
  • Windows Server 2003
  • Linux

Mac OS X Server

Essentially, Apple is a corporate entity, thus they are very proprietary with their software and their users are more dependant on the company. If you want to have the OS X Server, you'll have to lay down a good thousand dollars for the software alone. Even though much of it is open source, you usually have to wait on the company to release bug fixes and updates. Not only is the software omnivorous for hardware resources, the OS will only work on computers built by Apple.

The trade off is that it's UNIX based, very straightforward (as far as server software goes) and has a lot of pre-packaged software. Mac OS comes with almost everything you will need for your server needs. The only things you won't have are third party programs, such as (but not limited to) game servers and internet radio/TV broadcasters. For such programs, you will have to go to the organizations that develop them.

Mac OS X Server is good for business purposes and places where reliability has priority over cost. End users, such as journalists and webpage developers will be faced with a much more user friendly interface. And, if you are willing to pay for the high level tech support, you will have a team of technisians who will help with all your troubleshooting and installation needs.

Windows Server 2003

Microsoft's server operating system also suffers from the same problems as OS X. Since it is a corporate organization, the users have more of a company-client relationship instead of an actual user-based community. However, unlike Apple, they refuse to embrace independant, open source web programs such as postfix and SQL. You can download and run the open source programs, however, Microsoft will offer no help or tech support for them.

In the past, Microsoft placed less focus on security than other operating system vendors, making it natorious for security issues. Instead of creating new solutions for security issues and pooling their resources to develop a more stable system, they often just threw security and stability to the wind as a solution to compadability issues. As a result, they have built a bad reputation. This is something they've worked hard to rectify with their current line of products, however, it is usually met with intense critisism.

The good news is that you can run Windows server on almost any hardware you want. The software requires a lot of resources, but not as much as the OS X Server. You also have the freedom to do a lot more system adjustments. Even though it is a closed source program, there is no lack of options and it is arguably the most flexible closed source program available. Windows is also a very strong standard. It is the most used operating system, thus, it has a high support from third party software developers.

Server 2003 is for people who need a strong standard and prefer corporate solutions over community-based development. Although costly, it is much more user friendly and GUI orientated. Provided that you use the windows programs for all your networking software, you'll never have to be bothered too much with a command line terminal. All the setup options are redily available and it's usually easy to go back to defaults in case you mess up. It's very ideal for large business and areas where functionality and ease of integration is priority over cost.

Linux

This is, by far, my favorite operating system. Because Linux isn't distributed by a corporate entity, they have no drawbacks that proprietary software suffers from. Their technology grows as fast as people can create it. They also don't have to worry about copyright laws because everything is licenced under the general public licence (GPL). If there is a problem with the software in a paticular distrobution of linux, a user can go right into the source code and create a solution. Users can rebuild and modify anything they want to. What's more is that they can go back to the user-based community and tell everyone about what they've done and how to do it. Thus, a true community develops which can give feedback to the creator as participants, instead of as a powerless individual. As a result, the organization who made the code for linux can give a much better update for their software. Progress and development can be measured in weeks, if not days.

Linux is also very reliable and secure. Since the operating system runs it's programs in shells of their own, the system usually won't be taken down by software that has failed. The system is also extremely malleable and always shows you exactly what is hapening. Unlike windows, you can see every process that happens in startup and shutdown. If you are tech-savy enough, you can cut out system functions you don't need and customize your operating system for highest proformance.

Another advantage to using Linux is it's efficiency. Since anybody can come along and change the source code, the system has come from decades of refinement and community development. Far from the system requirements of Windows and OS X, Linux can run on very little resources. In fact, people often replace Windows with Linux on their old laptops to get more out of their limited resources. Linux can even be put on ipods and PDA's.

As good as this sounds, there are a few drawbacks. Even though Linux is simple and efficient, it is one of the most immersive operating systems out there. As a result, you have to know a lot about it when you work with it. The flexibility that the system offers doesn't help with the complexity issue either. Because of the sheer amount of system changes one can do, most of the changes are done through a command line. Therefore, you have to know all the commands and their parameters before you can get things done. Don't let this discourage you, though. There are many graphical user interfaces (GUI) being developed for linux's control options; they just haven't caught up to Microsoft or Apple's....yet.

Another knock against Linux is it's lack of commercial support. Sure, you can find tonnes of open source software. In fact, the Linux community was responsible for almost all of the independantly made programs we have today. However, some commercial games and applications are hard to come by. Personal computer resources like Adobe Photoshop, Propellerhead's Reason and other aplications that are redily available on Windows are not programed to run with Linux. This is why everybody flocks to Windows for their operating system. However, there are many open source solutions such as gimp and open office which are free alternatives to conservative commercial programs.

Another flaw of this OS is that it doesn't have a thorough, all-inclusive standard. Different organizations make their own type of linux that we call a distrobution. These different distrobutions offer diversity, but not complete standardization. This is why it's harder to get support from commercial programmers as the user-base is divided into factions. However, there are a few very big versions of linux that stand out more than the others. They are:

  • Red hat
  • Ubuntu
  • Debian
  • SUSE

Don't let the multiple versions scare you off just yet. All linux programs run perfectly on all different distrobutions, provided you configure them right (if at all). There are only very subtle differences between them, such as folder arrangements and supplemental services (like update managers).

Linux is best for people who like working directly with their servers without a middleman. It's also good for people who are creating their own personal internet server and aren't afraid of reading a few books on the subject. For many Linux users, it is a hobby; something they can work on without pressure. However, when linux is used for industrial purposes and implemented effectively, it outshines everything. Most linux systems will rarely ever crash and it usually does ten times the job any commercial system can do. Just a word of caution, though: If you use Linux for personal use, be prepared to reinstall it a few times as you will probably mess up more than once. Most linux distrobutions also have an equivalent of windows update, so be sure to research it.

Server applications

In adition to finding a good operating system, you need some programs to actually handle the server's functions. Different programs run with different operating systems, so I'll focus on types of services rather than platforms. For an in-depth look at specific programs, go to the reference section for their homepage links.

Email

Most server operating systems have email server programs available right from the start. Windows and Mac OS X have their own proprietary programs and linux has many open source iterations to choose from. Microsoft's program is the Exchange server. Apple uses a compilation of open source services like SquirrelMail and postfix all put together to make one unified mail system. Linux has a whole bunch of stuff and arguably the best selection. You can chose from sendmail, postfix, fetchmail, qmail, imap, exim and a whole bunch of others. Postfix is generally used by most Linux administrators.

Web page servers

The most common is the apache server. This program is available on any platform, but is most supported by linux. Microsoft has it's own program called IIS, which is on Windows Server 2003 and XP professional. However, if you want, you can install third party programs on windows such as sambar, xitami, omni and apache. Apple takes it's cue from Linux by going with apache. And, apache is almost always used on linux. What to use? Apache is the general answer.

Database management

While databases don't actually work as an online agent, they are mostly used by web programs. They are used by email servers to store their email, by webforum programs for managing posts, by web page servers to keep track of browser input, by irc servers to keep track of logs and by php scripts to store variables and information. There are just too many internet programs that use them to not list it. As before, windows has it's own database program called Access and Apple makes use of the open source programs. What is the best one? It might be a good idea to research each one before you make the dive, but the one most commonly used is MySQL. It's the one that Apple comes with and is used by linux administrators everywhere.

Internet radio/video streaming

Internet radio is far more within your grasp than you may think. Most media player programs have free streaming server applications because they want to have as many media stations as they can. Winamp is a good example. Their shoutcast server is completely free and works on windows and Unix sytems (that means linux too). If you want something different, you can use the VLC. VLC is most supported by linux, but is fully functional on MACs and Windows PCs. There are also the proprietary programs to keep in mind, such as Window's media player and Quicktime for apple.

Gameservers

Gameservers are one of the most used services supplied by the average Joe. The good thing about most gameserver applications is that even though the actual games don't support different operating systems, the server applications will. In fact, you'd be hard-pressed to find a gameserver application that didn't have a version for another OS. Whats even better is that most videogame companies will give you gameserver applications without even buying the game. It makes perfect business sense, and I don't think companies need the added praise, but it's still very cool. If you're looking for a paticular online game's server program, just go to it's official webpage and look for servers.

Administration interfaces

While Windows and Apple already have convoluted interfaces, putting an interface on a linux and Unix server application can make it feel a whole lot easier. In the long run, it is always better to familiarize yourself with configuration files and commands of a paticular program. You aren't restricted to an interface's input feilds and you can integrate extra code into your system. You also won't have to worry about changing other people's systems since all the interfaces update themselves according to the configuration files (not the other way around). However, since you are probably doing this for the first time, you may want "training wheels" to help you out. The most popular GUI is webmin. It covers Appache HTTP server, Fetchmail, Sendmail, mySQL, Postgre, Postfix, Qmail, SSH, Samba, and Spamassasin. View the complete list here. The second choice for most administrators is Linuxconf. However, linuxconf is more OS orientated. This may be a good or bad thing. If you are more concerned with controling linux than compadability with webserver programs, this would better suit your needs. If those two still don't fit your needs, you could try cPanel or ASM. If you are having trouble with a paticular serving program, there are many program-specific GUI's which can sometimes be more precise and better-suited for it. They will probably have better documentation and be easier to find since they're more specific.

Part Two: Composition

Part One: A Neophyte's Introduction | Part Two: Composition | Part Three: Reference Repository


Part Two: Composition

Before you start:

Before you start building a server, there are a few things you need to have beforehand. I've actually listed them all in part one, but not in physical detail. In some cases, what you need depends on which composition you are going to use. This guide gives you two different server compositions for personal preference. The first is a Linux Ubuntu server and the second is a windows server. I'll go through the requirements and tell you what you need for the different builds.

Server internet connection

The type of composition you go with won't make much difference on what connection you need. Call your local ISP. Ask them if you are allowed to have a server on your internet connection. If not, they'll refer you to a business or server package. Consider all the questions in part one.

Domain name

You're probably better off buying a domain name from the internet with a credit card. Make sure it's a reliable site that's grounded to an actual adress. In the reference guide, there's a list of legitimate sites. If you're in a big city, you might find a local business that will register your site, but you might have to pay a little more for it.

Server computer

If you have an old computer kicking around, that's all you need. Just make sure it meets the requirements for your server's operating system. For both operating systems you'll need:

  • Processor: 800 Mhz+
  • Memory: 256 MB
  • Hard disk: 3 GB
  • Media drive: CD-ROM drive
  • GPU: 64 MB card; Supports 1024X768 resolution (anything better than a Riva TNT2)
  • Network card: Any eithernet card that's 100MBit or higher is fine.

You can have Ubuntu linux system run only your webserver applications which will let you create a server with half of the aforementioned requirements. However, if you're just new, you probably want an Ubuntu desktop anyways. The minimum requirement list I have made is from my own judgement. I find the ones done by the companies and organizations to be a bit conceited.

Router

You'll need a router of some sort. It'll be something to separate the internet from your local machine. If you want, you can set up a little network with it too. Plug everything into one router and each computer can communicate with the others and use the internet. Routers range from 50-90 canadian dollars. Make sure not to get too cheap. You'll probably want one with a good firewall and lots of configuration options.

Eithernet cables

They're easy to forget. You'll need two catagorey five (cat5) wires for the most basic setup (and one more for each computer you want to put on your network).

Server OS/Software

If you are going with Ubuntu, you'll need to download it from their website at ubuntulinux.org/download. If you want to do this my way, you'll need the latest version. If you want to do it the hard way, you'll need version 5.0.4: the hoary hedgehog. My version is just a basic setup with apache web page server. If you want all the bells and whistles, you'll have to walk Till Brehm's dark and crooked mile. For his how-to guide, click here. The download will be in an ISO image format. You have to burn this "image" onto a disk using iso burning software. You may already have it on your computer. Nero burning program will do it for you, among other CD burning programs. If you don't have an ISO burning program, use silent night. Burn the downloaded file onto CD as an image. This CD will then be a boot CD that installs Ubuntu. You won't need any aditional software until you have installed Ubuntu.

If you go with windows server 2003, you'll need to pay with arms and kidneys. If you really want, there is a downloadable free trial which works the same as any other server 2003 would. However, I recommend using windows XP pro if your server is just for personal use. If you have Winwos XP pro edition, you'll have everything you need for the basics.

Ubuntu linux Server

Before you begin with the operating system, you'll want to hook your system up to the internet through the router and make sure your computer can access the internet. Then comes the ubuntu install.....

First of all, make sure you don't have any needed data on the server computer you are going to use. Anything you have on it will be deleted. Drop your newly burnt Ubuntu CD into your old computer and restart it.

You'll find an Ubuntu boot menu. Press enter. Select your language (most likely engligh), country and keyboard layout. Then determine the name of your server. Pick anything you like. I will call it "myservername" for reference sake. You'll find yourself at a "partition disks" section. If you want to manually edit your partitions, select the second option. However, for your first personal server, you should probably just pick "erase entire disk". You might get a time zone configuration option, which you would just select the applicable option. After that, you'll see a "set up users and passwords" screen. Type your name (or bogus one if you're paranoid). Then type your logon name and a password to go with it. After that, you'll wait some time and then you'll get to a screen that says "finish the installation". Just take the CD out and hit continue. The computer will restart and install all the rest.

Once you're looking at the desktop, you can probably update it. You'll see a red updater in the top right of your screen. Just double click that and go through the update wizard. Then you'll proceed to find your command line prompt. If you updated your system, it will be in Applications -> Accessories -> Terminal. In the command terminal type....

  • sudo apt-get install apache2

Now, you have everything up and ready. You will have to go into the /var/www/ folder to look at or modify your http webpages. whatever is called "index.html" will be what your viewer sees when he types in your URL in the browser. But, we aren't quite there yet. Now, go to System -> Administration -> Networking. Under the connections tab, select your eithernet card and click on poperties. change configuration from DHCP to static IP adress. Type in 192.168.1.2 (2 or whatever number you want. Just remember the number). The subnet should be 255.255.255.0. Now, the gateway will be whatever number that the router has assigned itself. To find this number, look in the instruction manual of the router. It'll be a number like 192.168.1.1 or 192.168.0.1. That's the number you have to put into the gateway address.

Now, you'll need to configure your router ports. To get to your router configuration you just open your internet browser (it's the lil' globe on the top of screen) and type in the number that the router has assigned itself on the LAN. It is the same number you entered into the "gateway address" box. You'll get to a configuration page for your router. In the controls page, there should be a "port range forwarding" section. You need to type in the range of 80 to 80. and then type in the static ip adress you entered in before. My example was 192.168.1.2. Once you're done that, you have to setup your domain name configurations.

If you have a static IP adress, go to the site you registered your domain name at. Give them your IP adress. To find it, go to your router configurations again. There will be a listing called WAN IP address or internet address lease. If you have a dynamic address, you need to go to zoneedit.com (or another DNS management service). After you have registered with them, type in your IP address and you should get two (or sometimes three) nameserver URLs. Go back to your domain name registration site and type in these nameserver URLs and your IP adress in the appropriate place.

Wait a day or two for the servers to update your information. Then you're done. You can begin building your website!

Windows server

I won't tell you how to install windows because you probably already have it on your computer. Just go to your network connections. Go to it's properties and then click on IP/TCP and click the properties button. Click on "use the following IP address" and type 192.168.1.2 (2 or whatever number you want). Then do all the things that were done in the ubuntu guide. However, you need to manually download the apache server. Go to http://httpd.apache.org/ and download the windows version of apache (with windows, you can only get version 1.3.34). Install it. It will have an equivalent of "/var/www/". It's webpage folder will be "C:\Program Files\Apache Group\". Once you've done all the steps in the Ubuntu guide, you're done! Wait a couple of days and your site will be online!
Part Three: Reference Repository

Part One: A Neophyte's Introduction | Part Two: Composition | Part Three: Reference Repository


Part Three: Reference Repository

This is where all server resources are linked. It's a collaboration of all kinds of info sites and troubleshooting help. This is where all official pages are listed and where the best how-to's are deposited. I will update this place as frequently as I can. I hope it can become a sort of internet site database for all things server related.

Other Server guides:

Domain name registration/management sites

Webserver applications

Internet

Linux

General

Ubuntu

Gentoo

Linux SME server


Please feel free to display this anywhere you like, as long as you provide a URL of my page on the reproduction. And that you do not use this for profit. If you want to put this on your website, I only ask that you give a link to my site.