ComputersGeneralLinuxWeb DesignWeb Site

Rebuilding the web server using Ubuntu Linux

As mentioned in my earlier blog entry I had to rebuild this webserver over the weekend. The reason for this was due to a hard disk failure, which had started to give error messages last week.
So I had bought a replacement hard disk and installed this into the server.

The server operating system was very old anyway and so needed updating, so I took this opportunity to replace the operating system with Ubuntu linux.

Why did I choose Ubuntu?

One problem I have with the server is that it is my only server. Unfortunately I don’t have a backup server than can take over if I take the server down for maintenance. This means that upgrading the operating system will both involve a significant impact, and in the event of an unsuccessful upgrade could have resulted in an extended outage. As a result I’ve left the server running an ageing Mandrake Linux V9.2, which had been out of support and so I was not able to install any security fixes.

I therefore looked for a Debian based OS, which will hopefully allow me to keep the operating system up-to-date by using regular incremental upgrades.

Package Management Schemes

If you are already familiar with the different package management tools you can skip this part.

Essentially there are three different of Linux Distribution. These are:

  • RedHat Package Management based
  • Debian Package Management Based
  • None Package Management Based

This is down to the package management tools that are used. The package management tools bundle the individual files of the software together, and also include dependencies. For example many applications refer to the same shared libraries, which helps to reduce software bloat, but if the correct libraries (including version) are not installed then the software will not work. So therefore the rpm software will not allow the application to be installed unless the required libraries (dependencies) are already installed.

RedHat Package Management Distros

This is perhaps the most common category in terms of the number of distributions using it. RedHat package management is a way of handling applications devised by RedHat. It uses files with the extension rpm. Each distribution has their own set of packages. Although the package management tools have improved over recent years you can quite easily end up in “dependency hell”. This is where you want to install package, but instead find yourself having to download and install lots more dependent packages. For example you want to install application1, but that won’t install because you don’t have application2, but that won’t install because libraryxy1 is not installed, which won’t install because you don’t have libraryyz1 and libraryab2. etc. etc.

As a result to upgrade the operating system you generally have to use the full installation CDs and upgrade the whole system (hoping that it doesn’t break some rpms that were not installed off the original disc).

The following distributions all use rpm files:

Debian Package Management

Although there are less mainstream distributions using Debian it has strong support and is considered by many to be the better package management tool. Debian package management uses files with the extension .deb. The good thing about the debian package management tools is that they can handle dependencies much better by automatically installing the dependent packages, they can (with a network connection) also download any missing dependencies and install them without requiring any further user interaction.

Using these it is possible to upgrade a whole system by only running a few commands (and then leaving it to download and install all the packages over the network).

The main distributions using debian package management are:

Without Specific Package Management Tools

Some distributions don’t use either of these, but instead use the traditional unix tools, or their own scripts. These can offer more flexibility in how files are installed, but can be harder to install if you find that the dependency files don’t exist on your system.

Distributions without the package management tools:

Choosing a Distro

The main criteria for me choosing the operating system was therefore the package management tools, and I’d already decided I would like to try a Debian based distro. I have found Debian very hard to install in the past, whereas I’ve had some good experience with Ubuntu, so that was my choice.

Getting the Server Back up Again

The install of the GNU/Linux operating system did not take that long. However there was a lot that needed configuring and additional packages that needed to be installed.

I concentrated first on getting apache installed and running, and with the addition of php support that meant that was up and running quite quickly. My other site was not quite so straight forward. The thing with is that it has a perl based quiz. Whilst one of the good things about perl is the number of modules available, it’s also one of the negative things as it means that these modules all need to be installed on the new system. I did have a couple of problems installing from CPAN, but after installing a few more debian packages I was up and running again. This happened early this morning, so it did mean that the quiz part of the site was down for about a day.

The new system appears to be stable, and has more available disk space. I’ll provide more details of the steps required to get the applications working in future blogs.