Get installed
Is the installation routine a helping hand or more of a slap in the face?
We installed all of the CMSes locally on to an Ubuntu server. In some respects, this might seem unfair because a typical hosting provider usually has a more suitable setup environment for a typical CMS. On the other hand, it does give us full control to troubleshoot each system, along with a level playing field.
All of the CMSes required a bit of work to create a suitable environment for hosting on our server. We took it as read that we’d have to set the correct permissions for the installation directory and that we’d have to create a MySQL database. Most paid-for web hosting comes with a web-based tool called
phpMyAdmin, which makes this part of the process a bit easier. Once we’d taken these steps to prepare our server environment, WordPress installation was largely uneventful. The ProcessWire
installation process was also uneventful and offered the best hints and checks that we saw in our tests.
Things were slightly more complicated when it came to Drupal.
On the plus side, the shortcomings of our server setup were flagged up in a civilised manner by the installation routine, and that meant that we could search online and within forums to change server settings and add components in a relatively pain-free manner.
Drupal also offered the advantage of being able to use an SQLite database rather than MySQL. This stores the content in a single file and means less setup work at the expense of performance on large sites. For our tests, we went for the more standard MySQL, but it was nice to have the option.
We tried to install Joomla! within two different versions of Ubuntu without success. The problem was that we couldn’t enable helpful error messages at such an early stage in the installation. A few forum posts on the official site made reference to similar problems with a similar server base and we never got to the bottom of it. In the end, we hosted it with the official Docker image, which did work. Following the official instructions, we used Nginx instead of Apache to host Ghost. Using Nginx a little extra work, but the instructions worked without a hitch. Ghost works a bit differently from the others and doesn’t use an external database but it recommends MySQL for production installations.