Choosing your operating system and web server software is only the beginning. If you need a custom dedicated server built to your specifications, you will need to specify several other types of software, including database system, DNS, mail transfer agent (MTA), scripting languages (PHP, Ruby, Perl, etc.), firewall, virtualization, and more.
DNS – The management of your domain name system (DNS) is of the utmost importance if you are connecting your server to the Internet in any way. You need a DNS system that is consistent and secure. For Linux and Unix servers, the de facto standard is Bind (or nameD).
Databases – Database usage varies widely. Before you decide on software, you will need to decide on a type of database. You can choose from relational database management systems (RDMS) or non-relational databases, and then there are countless variations within those two categories. For example, if you choose RDMS, you may prefer a robust database server like MySQL or a simple database library that requires no running service, such as SQLite.
Scripting Languages – Today’s dynamic web applications all use scripting languages. Some may even use multiple languages within the same application. PHP and Perl are among the most popular, but there are plenty of other options. In most cases, you will want to use a server-side scripting language, but there may be some instances where a client-side language, such as Java, is required.
Other Software – For Linux distributions, it may be easier to decide on software, since many of them come with their own set of packages. You can mix and match the ones you like and build your ideal server without spending a lot of money.