Article
Complete Guide To Hosting - Part 1
2. Server Software
There are so many combinations of operating systems and servers that it can be hard to know which one to go for. The two most common server configurations are Windows running Internet Information Server (IIS) or *nix (Unix based) running Apache Server. If you know more about the server platforms and the server software that can run on those platforms, you'll soon discover that not all servers were created equal.
Windows NT and Windows 2000
Windows NT servers have become harder to find since Windows 2000 replaced NT, but as 2000 is essentially an upgrade, this is no great loss. Most Windows servers typically run IIS 4 (WinNT) or IIS 5 (Win2000), but it is certainly possible to run other servers such as Apache on the Windows operating system, even if they don't quite work in the same way as they might on other platforms.
One of the main problems with using Windows as your operating system is that sendmail, which is essential to the running of some Perl scripts, can be absent (although the better scripts have provided workarounds for this). File permissions are available, although they are simple when compared to the *nix permissions that some may have grown used to (one permission setting includes all the possible users).
Due to the more relaxed attitude on file permissions, and the way that Windows associates file types by extension, you may find it much easier to install scripts on a Windows machine, as there are no permissions settings or paths to forget about. Password protection is also available on Windows systems, however the only downside is that you will need to have access to the actual server itself to implement passwords (unless you are running Apache). It's always a good idea to hide sensitive data below the main Web directory rather than relying on the ability to password protect directories from prying eyes.
Unix (and Unix variants)
Unlike Windows, Unix, and its many variants (Linux, FreeBSD and Sun) provide the user with more control over the configuration of the server and the software that it uses. By connecting to the server using telnet or SSH connections, it is possible for users to schedule scripts to run automatically (a cron job), edit file and directory properties and permissions, and even debug scripts as they run on the remote server! Of course, to be able to use your telnet access effectively you should know at least the basics of Unix; unfortunately it's a little more involved than Windows, as Unix operating systems tend to use text-based commands as opposed to a Graphical User Interface (GUI).
Because Unix-based systems don't use as many system resources as those running Windows, it tends to be a more stable and reliable option. Given identical hardware specifications, a Unix system will be more efficient, as it doesn't need the resources that the Windows system would use simply to update and interpret the GUI. If you want more server power for your money, Unix is a good choice: not only does it boast more efficient resource management, but being open source, it's the cheapest option as well!
Unix and its derivatives are often the platform of choice for many Web programmers that develop scripts, with many of these scripts making use of the built in Unix program, Sendmail. Due to the open source nature of the Unix culture, there are plenty of free scripts available, and many are optimized for use on a Unix-based server.
Internet Information Server (IIS)
IIS comes with full support for ASP, while other servers don't support it without a 3rd party add-on. Chili!Soft ASP is popular for those who want to use ASP on *nix servers, however there are noticeable differences between the Microsoft version of ASP and Chili!Soft's version, so it's best to use a Windows server for ASP pages to ensure they work as expected. Perl and PHP will happily work on a Windows machine, although the functioning of some of the more advanced functions (which are not often used) may be quirky or missing altogether.
Most good Windows hosts will offer configuration of the host via some sort of control panel. The more advanced control panels will let you edit settings related to the domain you're hosting, but most should let you change the permissions of a file. The better control panels will let you customize your various error pages and offer password protection for your site.
Apache
Apache is a popular choice for server software because of its highly configurable nature. Because it's an Open Source server, it evolves rapidly and there are always plenty of volunteers to help find and fix the bugs.
The best thing about the Apache server is that you can configure it on a folder-by-folder basis using the .htaccess file. This contains information about how the folder and the files in it will behave when requested, and allows you to have many custom error pages, password protection and even a way to protect your images from displaying on unauthorized sites!
The configuration of Apache can be confusing at first, but it's worth pursuing because it's so flexible; spend enough time with it and you'll be able to get it to do pretty much whatever you want it to. If you'd rather not get too intimate with the inner workings of an Apache server, then you might be able to complete the configuration using a more user-friendly control panel. This will make the task much easier to understand, and may even give you access to change the behavior of parts of the server you wouldn't otherwise have the permissions to alter.