Ubuntu 14.04 ships with Apache 2.4, which is a significant upgrade over Apache 2.2 as found in 12.04.
Apache 2.4 actually first appeared in 13.10, though of course if you intend to do an LTS to LTS upgrade, you won't notice this until now.
If you have a default configuration, then everything should upgrade automatically.
Of course, server deployments typically do not run on defaults. In this
case, there are significant changes of which you should be aware. Expect
the apache2 postinst script to fail to restart Apache after the upgrade.
You'll need to fix up your own customisations to meet the requirements
in Apache 2.4 and then run sudo dpkg --configure -a
and sudo apt-get
-f install
to recover. Be sure to back up your system before you begin.
Instead of upgrading, you may want to consider this as an opportunity to enter the new world of automated deployments. Codify your deployment, and then test and deploy a fresh instance of Apache on 14.04 instead, using virtual machines as needed. This is far less stressful than trying to upgrade an existing production system!
Upstream changes
You will need to update any custom configuration according to latest upstream configuration syntax.
See upstream's document "Upgrading to 2.4 from 2.2" for details of required configuration changes. Authorization and access control directives have changed, and will likely need adjustment. Various defaults have also changed.
Significant packaging changes
The default path to served files has changed from /var/www
to
/var/www/html
, mainly for security reasons. See the debian-devel
thread "Changing the default
document root for HTTP
server" for
details.
The packaging has been overhauled quite significantly.
/etc/apache2/conf.d/
is now /etc/apache2/conf-available/
and
/etc/apache2/conf-enabled/
, to match the existing sites-enabled/
and
mods-enabled/
mechanisms.
Before you upgrade, I suggest that you first make sure that everything
in /etc/apache2/*-available
is correctly a symlink to the corresponding
/etc/apache2/*-enabled
. Note that all configurations in sites-enabled
and conf-enabled need a .conf
suffix now.
Make use of the a2enmod
, a2ensite
, a2enconf
series tools! These
help you easily manage the symlinks from *-available
to *-enabled
.
See Debian's apache2 packaging NEWS file for full details.
Other Notes
Debian changed the default "It works!" page into a comprehensive page
explaining on where to go after an initial installation. Initially, I
imported this into Ubuntu without noticing this change. Thank you to
Andreas Hasenack for pointing out that the page referred to Debian and
the Debian bug tracker in a misleading way, in bug
1288690. I fixed this in Ubuntu by
essentially doing a s/Debian/Ubuntu/g
and crediting Debian
appropriately instead.
Thanks
I think the Apache 2.4 packaging is a shining example of complex packaging done well. All credit is due to Stefan Fritsch and Arno Töll, the Debian maintainers of the Apache packaging. They have done the bulk of the work involved in this update.
Getting help
As always, see Ubuntu's main page on community support
options.
askubuntu.com, #ubuntu-server
on IRC
(Freenode) and the Ubuntu Server mailing
list are
appropriate venues.