Gotchas Upgrading Apache from 2.2 to 2.4
Wednesday, 10 December 2014
I finally got round to upgrading one of my servers from Ubuntu 12.04 (the previous LTS release) to Ubuntu 14.04 (the latest LTS release). One of the consequences of this is that Apache gets upgraded from 2.2 to 2.4. Sadly, the upgrade wasn't as smooth as I'd hoped, so I'm posting this here in case anyone else has the same problem that I did.
Oh no! It's all broken!
It's nice to upgrade for various reasons — not least of which being the support benefits of being on the most recent LTS release — except after the upgrade, several of the websites hosted on the server stopped working. Rather than getting the usual web page, they just returned an "access denied" error page, and in the case of the https pages they just returned an SSL error. This was not good, and led to much frantic checking of config files.
After verifying that all the config files for all the sites were indeed correct,
I finally resorted to googling the problem. It turns out that the default
apache2.conf
file was being used, as all the "important" config was in the
module config files, or the site config files, so the upgrade had just replaced
it with the new one.
Whereas the old v2.2 default config file has the line
Include sites-enabled/
The new v2.4 default config file has the line
IncludeOptional sites-enabled/*.conf
A Simple Fix
This caused problems with my server because many of the config files were named
after the website (e.g. example.com
) and did not have a .conf
suffix. Renaming the files to e.g example.com.conf
fixed the problem, as would
have changing the line in apache2.conf
so it didn't force the suffix.
Access Control
The other major change is to the access control directives. Old Allow
and
Deny
directives are replaced with new Require
directives. The
access_compat
module is intended to allow the old directives to work as
before, but it's probably worth checking if you use any in your website
configurations.
Exit Stage Left
Thankfully, all this was happening on the staging server, so the websites weren't down while I investigated. Testing is important — what was supposed to be just a simple upgrade turned out not to be, and without a staging server the websites would have been down for the duration.
Posted by Anthony Williams
[/ general /] permanent link
Tags: apache
Stumble It! | Submit to Reddit | Submit to DZone
If you liked this post, why not subscribe to the RSS feed or Follow me on Twitter? You can also subscribe to this blog by email using the form on the left.
Design and Content Copyright © 2005-2024 Just Software Solutions Ltd. All rights reserved. | Privacy Policy
No Comments