How I Upgraded to Joomla 1.7

Inspired by Robert Vining over at www.joomstew.com and the fact that I am building most of my new sites using Joomla 1.7, I decided it was time to finally migrate this site to the latest Joomla version.

I think the actual decision maker was when I was adding about 50 flickr gallery modules to a site using 1.7 and found the new 'save as copy' feature saved me about 50% of the time it would normally take to save and create new modules for each page.

So, how did it all go?

Well, for a start, the site is still here so it obviously didn't go to badly!

I started by searching the JED for components that could automate the process (even slightly) and the joomla docs for information on the best way to go about the process. After finding this article, it seemed the preferred way to go was to use jupdate. I have always read that the only way to upgrade was from 1.5 to 1.6 and then from 1.6 to 1.7, but this turned out not to be the case as you will see later.

Before starting anything, I updated akeeba and took a fresh backup. My idea was to make a local install of the site, upgrade it, and then put it back in place of the old version. For reasons down to my setup, this didn't happen. I use WAMP server to run my localhost (as I am still learning PHP and it allows for testing using different versions of PHP and MySql) and have some custom debugging stuff running which can make it hard to do anything with Joomla. Also, it seems to create problems with the .htaccess and sef urls, which I needed to set all the redirects for the new install. If you use apache friends then this probably isn't the case.

As I had a load of testing domains sitting around I uploaded the backup to a live doman that wasn't being used. This also turned out to be unnecessary because of the way in which Jupgrade works.

After reading the article mentioned above, I installed the component and started the upgrade process.

As I mentioned above, there was no need to move the site anywhere, as Jupgrade works by duplicating the site in a new directory using the same database with a new prefix (ie not jos_). After checking the component parameters I found you could select to upgrade to 1.7 rather than just 1.6 so basically, all I did was click on the big upgrade button and let it do it's thing.

After everything had finished, I had a message saying that everything was successful and the new site was functioning within the newly created directory. I should point out here that the site as it was was using regular joomla articles for the blog posts with the addition of the superblogger plugin from joomlaworks.gr.

After the migration the new site was set to use the default template with none of the previous components showing in the dropdown. Modules appeared to still be there but all deactivated. This was quite a good sign as I had installed so many things in the past there were still remnants of a few still hanging around after install. Obviously, most of the 1.5 stuff would no longer work but the old menus were also migrated to the new modules so the basic functionality was still there.

As my previous template came from rockettheme I just downloaded the new 1.7 version and set the configuration to the same as I had it before and compared the css files to add any changes I had previously made. The problems came when I looked for the modules and components I was using as not all of them very few infact) had been upgraded.

My biggest disappointment was that there was no superblogger plugin although I guess this has been dropped as K2 does pretty much the same thing and more, I just have an issue with the way the urls are created using K2 and didn't want to extend the migration by having to get all the regular articles into K2 in the first place. I also thought about using Zoo from Yootheme but ultimately decide to keep it simple and just add a comments plugin (more on comments later).

The next issue was the downloads section. Before I was using Rokdownloads which hasn't yet been upgraded. I opted for phocadownloads based on the user reviews. After installing I was pretty impressed with the options available and the flexibility of the output. As I have upgraded some of my modules for 1.7 it was time for a bit of reorganisation anyway.

Minifrontpage was incompatible (but there are lots of news display modules out there so I went for JASidenews).

Breezingforms was not incompatible but as I use chronoforms for everything elsewhere I installed the new version and just made a new contact form.

Xmap just needed the new version installing and the content plugin enabling.

JCE was also easy as it doesn't really have any effect on content already created. One thing I am missing is the addons I had for the 1.5 version that allowed iframes into content. The flash on the websites page disappeared but rather than invest in the upgraded JCE plugins I used a custom code module and loaded it in the article.

I previously had sh404sef installed but over the years had reduced it to the most basic of functionallity without uninstalling mainly because I couldn't be bothered to do redirects for each page which was now going to have to be done anyway.

Regarding the comments on posts, I went for ja-comments as it has an option to import comments from other systems (such as disqus as I had before). After installing and setting up the component I downloaded the xml of comments from disqus and couldn't get it to work. The component kept asking me to give it a valid xml comments file. The file certainly looked valid and I haven't been to the forums to enquire further. Maybe fresh comments aren't so bad as I was starting to get some spam, although ja-comments has no akismet or mollum feature so it will be interesting to see how log I keep it for.

As the new install was still quite fresh I decided to add some extra bits and went for the joomailer component to integrate mailchimp. I had a few problems here which made me take a look at the database. What I could see here was that there were still records for all the 1.5 components and modules, which I then found to still be in the 'manage' section of the joomla installer. I couldn't click on uninstall as they weren't installed so just got an error saying the uninstall file couldn't be found. I went through the database and manually deleted the records for things I knew weren't there any more. This was also easy to check from the manage extensions view as all the old extensions were inactive and I could check the id numbers against the database.

Regarding the images on the site. Joomla 1.7 no longer has the 'stories' folder, just 'images'. As the old stories folder was inside the images folder, jupgrade just copies the whole lot in so all the links still work.

I think by this point it was getting pretty late and all I had to do was redirect the old urls to the new ones. There weren't massive amounts of posts so rather than scan the old site for a list of the old ones and then create them all by hand, I opted to use the new redirects manager and then scan the site after to check for any broken links (download a copy of xenu for this, it's a very handy tool when moving or updating sites).

I removed the old site and replaced it with the new 1.7 version. I then went to the database and removed the old jos_tables just for a bit of spring cleaning. Then to sort out the redirects I went to google and got a list of all the pages they had indexed by doing a site search, site:www.search-friendly-web-design.com I then went through each page and clicked on every link. This would be a nightmare with a large site and you would be better to use mod_rewrite and find some regular expressions that fit the bill.

After clicking on al the links I then went to the new 'redirects' component that comes installed with 1.7. This lists all the pages that people have tried to get to that have resulted in a 404 error. I then went through each one and added the new location of the page. One thing I'm not sure of here is how the pages get redirected as from using the firefox liveheaders addon, when I type in the old location of the page there seems to be no redirection, just a request for the new page. No idea how that works but we will see if the pagerank gets transfered.

I kept an eye on the redirect manager over the next couple of days to check for any loose ends that might have come from elsewhere and sorted out 1 or 2 more but generally they were fine.

In hindsight (and after just setting up a site using 1.7 and Zoo) I wish I had taken the extra effort to use either Zoo or K2 but this is not really a major issue. Images in posts have a lot to be desired and the author box and latest tweets and articles have gone but I'm sure something will come along soon that will fix that, and did anyone ever read them anyway?

The upside has been that the site seems to run alot faster. Pagespeed gives it between 80 and 96 depending on the page an a few runs at webpagetest.org came out around 1.5 to 2 seconds on a repeat view. Blog posts all now seem to have the page title in the link which is great. Generally, I'm pleased that I did it now rather than later!

So that's about it. Please, someone test out the new comments system by telling everyone your update experiences!