Upgrading Your Drupal Website - Step by Step.
Drupal Upgrading – A Simple 10 Step Process
I’ve upgraded my website several times – so I can hardly be considered an expert… but I’d like to document the steps I take to upgrade my Drupal site – so that others have a roadmap to follow. Keep in mind that those who are on a dedicated server may have different procedures, I’m on shared hosting (a fantastic site called Hot Drupal)… but if you’re on a dedicated server, you’ve probably already done this a few times!
Keep in mind that this information is for upgrading within the same version number, ie; 6.4 to 6.5. If you’re upgrading from 5.10 to version 6, there will be more work for you to do – you’ll have to ensure that all of your modules have versions compatible with your new Drupal version.
I always have a current backup of my website, Burningknife.com – on my desktop computer: it’s in a subdirectory called ‘burningknife’. However, for the purposes of this article, I’m going to refer to two subdirectories you’ll create with these ‘placeholder’ names: website-old, and website-new. Create these two subdirectories, then we can begin:
- FTP your complete website to ‘website-old’. Even if you already have a complete backup (you do, right??) it’s never a bad thing to do it again.
- Download the new version of Drupal, and unzip everything into the 'website-new’ subdirectory.
- Next, copy these files & subdirectories from your website-old subdirectory to your website-new subdirectory.
- "/sites" subdirectory
- .htaccess
- robots.txt
If you have other subdirectories that are not a part of Drupal – move them as well.
- Log in as User #1, and set your site in ‘Maintenance’ mode – you don’t want any traffic disrupting what you’re about to do. I suspect that the best way to do this (rather than through the Admin Panel) is to develop an .htaccess file that allows only your IP, and directs everyone else to a hardcoded HTML page that describes for your visitors what is happening. I’ll update this page if and when I set this up.
- Go to your Cpanel, fire up phpMyAdmin and export your database. Be sure “Drop Table” is enabled and save the export file to your hard-drive. With current backups of both your website, and its database, you now have the ability to completely recreate your website if something goes wrong. This step isn’t strictly necessary, but I wouldn’t skip it.
- Switch your theme to a core theme like Garland or Bluemarine, then disable all non-core modules. This means any and all modules that you've added to the base installation of Drupal.
- Go to your CPanel, and delete all files in your website. As I always run my websites as an ‘add-on’ domains, it’s a simple task to delete the public_html / burningknife subdirectory. (Alternately, you could create a new subdirectory on your hosting package to put the new version on – I haven’t tried doing this, but it might be a safer method… any thoughts?) On my host, the settings.php file seems resistant to being deleted (permissions problem, no doubt)... ignore it, it's going to be the same anyway.
- FTP everything in ‘website-new’ subdirectory on your desktop computer up to your web host. Then go ahead an log in as the Administrator
- Run update.php, re-enable your modules, run update.php again, and change your theme back to your original theme. (See note below if you can’t run update.php)
- Check everything to make sure nothing went wrong. If everything looks good, go ahead and put your site back online. If you have problems, you can either repair them, or easily move back to the old website – as you have everything backed up.
I squeezed a few steps in there - just to make it a nice round 10 steps - but then again, I'm the author, and I get to say however many steps I want to say, right? Hopefully, however, this step by step plan will make it easy for you to upgrade.
I suspect that life would be infinitely better if I put all non-Drupal subdirectories inside the /sites subdirectory (I have a ‘download’ directory, for example) – then all I have is a single subdirectory that needs to be changed, but no-one told me this tip. I wish someone had clued me in when I was starting out. So if you are just starting with Drupal - put everything that isn't from a base installation of Drupal under the /sites subdirectory - you'll have an easier time with upgrades! My site is still new; I suppose I can slowly change everything over to this better scheme.
If you find that you can’t run “update.php” on step 9 above, simply open up your ‘sites/default/settings.php’ file, and change this line: $update_free_access = FALSE; to the following: $update_free_access = TRUE; then FTP the changed settings.php file to your website. Be sure to reverse this process and change it back after you get your site working!
Keep in mind that I’m far from expert with Drupal – as of the time that this was written, I’ve only been using Drupal for about three months – so I invite comments! (Especially if you're more experienced with Drupal than I am!)

Delicious
Digg
StumbleUpon
Reddit
Google
Technorati






