ciplogic.com
Live with grace. Write superb software.

Updating Joomla between major versions is painful, since plugins are not guaranteed to be compatible anymore. CentOS 6.5 adds to the difficulty since it's stuck to version 5.3.3 of PHP, and since Joomla 3.3, only versions from 5.3.10 and higher are actually supported.

This article is a general overview on how to upgrade.

1. Do a backup, and run the actual update process on a virtual machine

Two times I managed to screw up my update on the virtual machine, and had to start all over, and believe me it's easy to do so. If you don't backup you are pretty much bound to do the same at some point. Regular backups should be anyway done on a regular basis.

To do a backup you just need a copy of all the files, and of the database:

1
2
$ tar -z -cf joomla_site.tar.gz /path/to/joomla/folder
$ mysqldump -u joomla_user -pjoomla_pass | gzip - > joomla_db.sql.gz

2. Remove all the custom extensions and templates (Extensions > Extension Manager > Manage)

I've seen people recommending trying to find if the plugins you have installed are available as well for Joomla 3.3. Personally I ran into trouble since some of them don't support newer versions of PHP and just spectaculously crash. This is why I decided to remove all of them, and add new plugins with the same functionality directly for Joomla 3.3.

The easiest way to do it was to sort them by ID descending, since the extensions I installed after the Joomla default setup had obviously bigger IDs.

3. Change the Template to one of the Joomla defaults

Custom templates I've seen they generally don't play nice between different versions of Joomla or PHP.

4. Update PHP to 5.5

If you are like me on a CentOS machine, you need to add a repository that actually contains PHP 5.5 (unless you feel brave enough to compile it yourself).

1
(root)# rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm

Remove the old PHP:

1
2
(root)# yum remove php
(root)# yum remove php-common

Afterwards you need to install the packages you need:

1
(root)# yum install php55w php55w-pdo php55w-mysql php55w-xml php55-mbstring

This package list might be different. For example I needed mbstring just for Piwik, that also runs on the same instance, not for the actual Joomla install.

5. Change the update policy to short term support

Joomla 3.3 should appear in the update list. If it doesn't you need to fix the database (Extensions > Extension Manager > Database), and purge your cache (System > Purged Expired Cache).

6. Update Joomla

I just update by overwriting files. For this I make sure that all the files can be written by the apache user, thus in the folder where Joomla is installed I generally run:

1
(root)# chown -R apache:apache .

7. Download a new template, install plugins, and configure their modules and positions

While this last step seems the shortest, since you at this stage are on Joomla 3.3, it turned out to be the half of the time in case of my installation, to get about the same positions, and features, and even some extra functionality that I suddenly decided it would be nice to have (like FB likes).

That should be about it.

In practice you'll run into trouble, and I know I'm repeating myself: do a backup.

 

Disqus Comments

comments powered by Disqus

Germanium

The one to rule them all. The browsers that is.

SharpKnight

SharpKnight is an Android chess game.

MagicGroup

MagicGroup is an eclipse plugin.