Joomla 2.5 has been out for a while and I’ve been waiting for it to stabilise. I’ve been putting it off for some time, but with Joomla 1.5 support being withdrawn and many of the extensions becoming obsolete, it looks like it’s going to be time to upgrade the ORC website. I’m planning to use the Joomla jUpgrade extension to do this but I reckon it will require some tweaking afterwards!
ORC has around 200 members, as I’ve taken the steps of removing any accounts that haven’t logged in for over a year. This should reduce the number of profiles to copy over that may have issues. For obvious reasons, I want to keep the user data, the forum posts, events, downloads, and functionality.
Current Joomla Configuration
The site currently runs Joomla 1.5 on PHP 5 and MySQL. It also links to a Mediawiki 1.18 install. The template is JS Optimus Free (customised) by JoomlaShack, that will likely need some alteration again.
- Admin Tasks (mod_comprofilermoderator – sys admins/mods only)
- ORC Info (mod_cb_login)
- Shout Box (Batjo’s mod_shoutbox)
- Latest Posts (mod_kunenalatest)
- Main Menu (mod_MainMenu)
- ORC Calendar (mod_eventlistcal15q which won’t exist any more)
- Upcoming Events (mod_eventlist)
- Who’s Online (mod_whosonline)
I’ll have to reinstall any component marked with an asterisk (*), as a version for Joomla! 2.5 exists. Those marked in bold shouldn’t need migrated as they are supposed to be migrated by jUpgrade (however I suspect they will need checked or reinstalled).
- Akeeba Admintools*
- Akeeba Backup*
- Community Builder - it does work but may need reinstalled.
- Kunena – doesn’t migrate rankings cleanly and you may need to reset category permissions.
- CBCaptcha for Community Builder
- User – Mediawiki login (Harold Prins‘ mediawiki plugin)
Right, first I put the site into maintenance mode. I’ve also done some basic housekeeping, cleaning out old messages, checking the database, and making sure that everything is as up to date as I can make it. I’ve also emptied the caches and trash for the forum, menus, and modules. I’ve made a full backup of both the database and file structure (as well as using Akeeba Backup to create a JPA download), and also moved the folder structure to a test folder. The phpMyAdmin Synchronize facility works well for creating a quick and easy backup of the databases.
I’ve created a place-holder index.htm for the site which says it is undergoing an upgrade – for some reason, the default option for putting a site off-line in Joomla still allows logins (which is why I’ve moved folder to a test environment as well). It is pretty easy to do - create a blank index.htm folder then create the following text within it:
<head>Site Offline<head> <body><h1>THE SITE IS CURRENTLY OFFLINE</h1> <p>It is being upgraded.</p></body>
That at least lets people know what going on.
I have also created a test sub-domain and database (which uses the same login criteria). So the “production” site is off-line, and the test site is now the one I’ll be working upon.
Phase 1: Using jUpgrade
I’ve copied the necessary folder structure to the test site, but haven’t made any modifications yet to the config files or database. If you’ve used Akeeba Admin Tools to create a customised htaccess file, rename .htaccess in the root of your website folder to .htaccess.live (or similar). If you don’t, jUpgrade will stall.
Change paths to test server.
Make sure configuration.php is writeable (CHMOD 644) and open it in a text editor. There are two variables you need to change for the full path to the test folder
var $log_path = ‘/path to test/logs’;
var $tmp_path = ‘/path to test/tmp’;
Note that we’ll also need to change the path to the database at some point but leave it as it is right now. We’ll come back to it later. Righto
“Whichever way you look at it, it’s brown trousers time” – Holly, Red Dwarf
Performing the jUpgrade
Backup your site AGAIN just to be safe. If you haven’t already install the jUpgrade module from RedComponent. Note this requires registration to download so create a throw-away password rather than you own sysadmin one (but you knew that already, right?) .
The defaults are usually OK, but you can check the parameters to see what you can do with them. I’m leaving them to the defaults as I’m not expecting problems, but three are worth looking at ( you might also like to make sure that the template positions are set to be saved as well!):
- Target Directory is usually the path to your test server/jupgrade
- Prefix for old database – by default is “jos_”. If you’ve changed this (which is a smart move – it is a security risk), make sure the correct prefix is set here.
- Prefix for new database – by default is “j25_”. We’ll be changing this later on so you can leave it as is.
First of all make sure you’re connected to the internet. Once you’ve saved these parameters, run the jUpgrade. It took a few minutes, but downloaded Joomla 2.5 and installed it to the jupgrade folder. If successful you should see
Joomla 2.5 Upgrade Finished!
You can check your new site here:
Site and Administrator.
If the upgrade fails for any reason, you can run a clean update by switching on the “Delete Previous Migration” parameter and trying again. Remember to rename the .htaccess file and reset the permissions on configuration.php.
Phase 2: Moving to the new site
Righto. We’ve now got a working Joomla 2.5 installation, in a folder called jupgrade. The database has also migrated to a new set of j25_ prefix tables. This isn’t ideal for me, so I’m moving them to a new folder at the root of the web-server and will also move the database as well. I’ve renamed the older folder and migration on the test server. I’ll have to clean these up later, but they are there if I need them.
I’ve opened the configuration.php site and altered the following variables:
var $log_path = ‘/path to new test/logs’;
var $tmp_path = ‘/path to new test/tmp’;
As I’m also using a new database I’ll also need to redo the following paths:
public $user = ‘database username‘;
public $password = ‘new db password‘;
public $db = ‘new db‘;
Phase 3: Tweaking the Joomla install
Now the screaming starts! I’m now ready to go in as the administrator, as there’s a few steps I need to do there.
Global Configuration – Site
- Site Offline – Yes
- Offline Message – “Use Site Language Default Message” selected
- Use URL rewriting set to “Yes” (rename htaccess.txt. to .htaccess afterwards)
- Include Site Name in Page Titles set to “After”
Global Configuration – System
Nothing needs tweaked here by me.
Global Configuration – System
- Gzip Page Compression set to “Yes”
- Server Time Zone set to “London”
Run Joomla! Update from the control panel and make sure it has been applied. Right! So far, so good…
Phase 4: Templating, Modules, & Menus
This could be a bit of a sod. I have a 2.5 version of JS Optimus Free, but can’t install it as the old template is still there . I’ve made a backup and gone into website path/templates and deleted the old template from there. This has allowed me to install the new template, but I now have two styles for js_optimus_free within the Template Manager styles. Neither are ideal as I want a new setting to use a fluid look of 90%, so I’ve had to tweak the template a little, as well as copying the logo and modifying the style sheet. I’ve had to reassign the menu positions again in the template, but that’s easy to sort out.
Phase 5: Modules and Plugins
The ranks didn’t copy across so I’ve had to truncate the j25_kunena tables and import them in using a SQL dump from the original database.
I’ve installed the plugin/modules for Kunena Latest (and enabled a Latest Posts module) and Kunena Statistics as well. I also had to reset the permissions on the forums, so jUpgrade doesn’t seem to work properly with Kunena.
CBseems to have worked, but I’ve taken the opportunity to reinstall it as it doesn’t seem quite right (the icons didn’t show correctly).
I installed the new version and enabled the Xmap – Content, Xmap – Kunena and Xmap – Weblinks Plugins. I had to create a new sitemap and also recreate the Menu link.
I migrated the data from the old database creating the j25_eventlist_xxxx database entries, then installed the component. Aside from recreating the Menu link and also the uploads directories in the Remository config, all migrated OK.
I reinstalled this – I’ll need to redo the CSS from a backup.
This is the one module that had me worried as it had many of the PMs for the site members. However, I migrated the xxxx_uddeim data across to j25_uddeim_xxxx tables, then I reinstalled the components, and rebuilt the Menu item.
Although the Mediaiwki bridge works, there appears to be an undocumented bug with Joomla! 2.5 within the AuthJoomla section of the Local Settings file for Mediawiki. The index.php?option=com_user link will generate a 404 error as Joomla 2.5 uses com_users (see below). I’ve changed them as follows:
$wgAuthJoomla_LoginURL = $wgAuthJoomla_domain .'index.php?option=com_users&view=login&return=' . $wgAuthJoomla_LoginLink; $wgAuthJoomla_LogoutURL = $wgAuthJoomla_domain . 'index.php?option=com_users&task=logout&return=' . $wgAuthJoomla_LogoutLink;
The Web Links menu needed rebuilt and there are no Categories. A bit time-consuming but not too much of a hassle.
I definitely don’t want to do this again. jUpgrade works to a certain extent, but isn’t quite the solution to move the Kunena Forum, nor did it move the categories successfully – as it’s the only product out there that’s free to use, I guess there’s nothing else to migrate users. Upgrading to 2.5 took me over a day, with fairly intensive work required. If I were to do a similar upgrade again, I’d likely un-install the Kunena Forum software and reinstall it after I’d run jUpgrade.
“No plan survives contact with the enemy” - Helmuth von Moltke the Elder (trans.)
Also it’s taught me that no matter how prepared you are, something always goes wrong. Despite testing everything out upon a new test site initially, I still needed to rely on backups. Also, although I’m not much of coder I’ve learnt quite a bit about the Joomla backend and MySQL as a result!
One of the biggest problems I’ve found with the internet is that any idiot can use it – and its greatest advantage, is also its biggest failing. During the London riots (and the ones in other cities), social networking was used to organise flash riots (in the same way that these inane flash mobs are). The governments reaction was then to consider restricting social networking sites like Twitter. As usual, this was a knee-jerk reaction to a technology not yet fully understood; when countries with a less-than-spotless record of civil and ‘net liberties (like China) accuse you of being heavy-handed – well, its political suicide.
However what is interesting is the Met (London’s Metropolitan Police) have adopted social networking, using Flickr to publish pictures of looters and others involved in the riots.They also used rioter’s phones to monitor Facebook and other social networks – although anyone stupid enough to tweet their going rioting or looting deserves to be locked up under the Wilful Stupidity Act.
I’ve heard a lot of people say that there were more police on the streets in the Royal Wedding than during the riot. There’s a simple reason for this – a) many were on leave, with their families as it was the summer holidays when the riots occurred, and b) police brought in from other areas (such as Manchester) would have left those areas without protection. I think the police were criticised unfairly for this, in what was a tough decision – let London burn and secure the other cities, or let every city be fair game.
Given how the current culture views civil liberties, few would want to become a police officer or social worker: they’re not respected – if they use force, they’re criticised and subject to public vilification (and what lead in part to the first riot). For anyone outside the UK, it may be known but the standard police patrol officer doesn’t carry a firearm. Also, I suspect that those who decry the security cameras sprouting up would take a very different view when the riot happens at their front door or business.
Some of the “disenfranchised youths” involved in this riots had bikes and mobiles – more than some children in third world countries ever have. And setting out to loot, burn, and destroy their communities isn’t some form of dirty protest – its a slap in the face for those parents that have indulged them. I’ve heard it argued that there’s no future for these kids – it’ll take more than a few pool halls to do this. What is needed is a better sense of community: it’s been lost in every sense of the word, where parents turn a blind eye to what their children do. It’s not just deprived inner city areas – suburbia is just as guilty, if not worse – people have no respect for others, and they’re passing it on to their kids.
Lets be honest about this: these riots had people from all walks of life. They were multiracial, from different age groups, different nationalities and had one common cause: to loot, burn, and hurt their communities. Imagine watching your home burn, while looters walk away laughing. While some of the cases being prosecuted are a little ridiculous – like someone stealing can of coke – there’s the unanswered question: why were they there? Call me cynical, but if you’re not living there and have willingly entered an area where riots are occurring, then there’s only a few reasons why you’re there: journalist, police or rioter.
What really galls me though is those who are trying to make political capital out of this (both BNP and liberals) – I’ve family in Hackney.
I know I don’t usually talk about my work much, but I’ve got to say something about the last month, and what’s been achieved by myself and others. It’s been a marathon – if you’re not particularly IT-savvy, this may or may not interest you.
We’ve had to shut down and take apart our server room at work: 8 racks of servers and UPS systems had to be removed from our server room. The UPS (Uninterrupted Power Supply) units were the real killers – at least 50kg each – but they’ve all had to come out. And we did this in three days, labelling everything (including fibre channels), and getting the stuff out. Why were we doing this? Well, we now have a room-based UPS that runs far more efficiently together we a cutting-edge air con system that also heats certain rooms at work too. Both are designed to reduce our carbon footprint and power consumption – the server room is now drawing 10% of what it was! The three of us also got the server room back up and running within a week!
What else? Well, although I’m not involved directly with the move from Novell Netware to Active Directory, I am going to be helping, with my work to implement ZCM (Zenworks Configuration Management) - a software deployment, asset management and desktop clone/imaging tool. I’m working on that as I’ll need it in place for the OTHER project I’ve to implement. It’s pretty much second nature to me now when it comes to using Zenworks – I’m NERCs “go to” guy for deployment and software installs after the Office 2007 rollout I did last year. I’m hoping that I’ll be able to go on a course in London for a week which will enable me to use ZCM successfully. I wish I could attend the course in Edinburgh, but there’s only three running in the UK.
The next big thing I have to do after that is gear up to move CEH to Windows 7 and Office 2010. This is a big project: we’re looking at rolling out 64 bit editions, as 32-bit is pretty dated now. Even agreeing on the flavour could be problematic (Enterprise or Professional?) – obviously those with large numbers of mobile sites like BAS are keen to have Enterprise with its BranchCache and DirectAccess applications. However, the latter requires IP6 – that’ll be another project away down the line! Its going to require very careful planning and the security implications of the XP Compatibility mode are pretty staggering – it’s likely that we’ll need to lock down that particular add-on with a GPO.
This is on top of my daily work which consists of the usual user support and maintenance – and I also have a video conference unit to build, a server array to repair/rebuild, and a field site server to upgrade with Fedora Linux!