Hosting – Application Stack
I recently posted articles on the different hosting options available to you (Hosting Options – Introduction) and on Shared Hosting. No matter what type of hosting or server arrangement you have for your website there will be essential software that must be installed and running in order for your website to run. There are several ways to describe the software that is required. One is to talk about the software dependencies. Software dependencies simply means that if you want to run application X on your server, you must have applications A, B and C installed and running – Application X is dependent on having A, B and C being installed.
Another way to describe the dependencies is to refer to them as the Application Stack. This is a common term for open source web applications. Most content management systems require the following: An operating system (obviously necessary), a web server to send your pages over the internet, a database server to store and retrieve the content of your site and a programming or scripting language that puts it all together. This is the application stack. An example of a popular application stack is called LAMP. That stands for Linux (operating system), Apache (web server), MySQL (database server) and PHP (and/or Perl and/or Python).
- Operating system (Windows or Linux or BSD)
Most shared hosting plans are *nix based – Linux or BSD. There are Windows shared hosting plans but unless you have a web application that you know only runs on Windows and you know your hosting provider supports that application in its Windows shared hosting plan, you should get the *nix plan. - Web Server (Apache or IIS).
Although there are many web servers available, most sites either run on Apache or IIS. IIS is Windows software and not available on Linux. Apache runs on both Windows and Linux but you probably won’t have a choice. If you have a Linux plan you’ll have Apache. If you have a Windows plan you’ll have IIS. - Database Software (MySQL, PostgreSQL, MSSQL)
The database server is the software that runs the database. If you have a *nix plan you will have MySQL. If you have a Windows plan you will have Microsoft SQL (MSSQL) although MySQL may also be available – it runs on both Windows and Linux. There are other database servers available such as PostgreSQL. PostgreSQL is considered to have more advanced features – more like an Enterprise server, but for most web uses on shared hosting it isn’t an advantage. Also, most web applications will run on only one type of database server. - Programming Languages (PHP, Perl, Python, ASP.net, Java, Ruby)
The programming language does many things for your web site, but the basic purpose is to retrieve the proper information from the database and turn it into HTML for the web server.
Web sites that are built from static HTML web pages don’t require this complex application stack. An operating system and a web server is all they need. The file system serves as the database. There is no programming code required, just HTML markup. There are also applications that don’t require a database but do use the other applications in the stack. For example, there are some excellent wiki applications that use the file system as the database and store content in plain text files. These are not as scalable as database driven applications but are fine for many needs.
Tags: database software, dependencies, operating system, programming languages, web applications, web server, Website Hosting