Apache2 Migration Guide

Introduction

Some websites on sphinx, our original shared hosting server, are still served by apache v1. Because we allow arbitrary custom apache configurations, we have not performed a mass migration to apache v2.

The majority of sites will migrate to apache v2 with few issues. This guide describes how to test your site under apache v2, what to do if there are any problems, and how to complete the migration.

Testing

Your website is already served by apache v2, but on a different IP address. There are two ways you can test your site.

  1. Use the test URL. If your website is http://www.example.com/, then we support the test URL http://www.example.com.sphinx.mythic-beasts.com/
  2. Use the hosts hack. In this option, we override the DNS so your browser goes to the apache v2 site. On Linux, *BSD, or OS X, you can do this by adding a line to /etc/hosts:
    93.93.130.166 www.example.com example.com
    
    On Windows, the hosts file is %SystemRoot%\System32\drivers\etc\hosts

The test URL technique is simpler, but has the drawback that following any links using absolute URLs on your site will take you back to the apache v1 site. For example, your site might link to the About Us page using HTML that looks something like <a href="about.html">.... That's fine, following this link will keep you on the apache v2 version of the site. But if instead the HTML uses an absolute URL, for example <a href="http://www.example.com/about.html">..., then following that link will take you back to the apache v1 site.

If you do use the hosts hack, you should remember to remove it again once you have completed testing! Otherwise you can end up in confusing situations where the site works for you but nobody else, or vice versa.

Common problems

fastcgi

The name of the fastcgi module has changed, so AddHandler or SetHandler directives that enable fastcgi will need to be updated.

Directives for apache v1 look something like this:

AddHandler fastcgi-script .cgi

The filename extension may be different (.php is another common one); there may even be multiple filename extensions. The SetHandler directive is the same, but has no filename extensions; it applies to an entire directory.

Whichever directives are in use, fastcgi-script must be replaced with fcgid-script for apache v2. The example above will need to be updated to:

AddHandler fcgid-script .cgi

You might find it simplest to disable fastcgi during the migration, but if you need it to work with both versions of apache, you can do it like this:

<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .cgi
</IfModule>
<IfModule mod_fcgid.c>
AddHandler fcgid-script .cgi
</IfModule>

Completing the migration

Once you are happy that your site works OK with apache v2, you need to update the DNS so everybody gets the new version. If we are hosting your DNS, then you are strongly encouraged to use the Shell account on Sphinx DNS template. This has the correct DNS records for apache v2

Simply visit the control panel, select the Manage DNS link next to the domain or domains you want to update, and change the template at the top of the page.

If we do not host your DNS, or for some reason you do not want to use the template, you should create or update A and AAAA records as in this example.

www.example.com.    A        93.93.130.166
                    AAAA     2a00:1098:0:82:1000:0:1:2

example.com.        A        93.93.130.166
                    AAAA     2a00:1098:0:82:1000:0:1:2

Of course, you will need these records for any website names that are hosted on sphinx. For example, if you have a site called blog.example.com, you will need the same records for that site too.

More help

If you have any problems, or need help with any part of this process, please email support