Some time ago I started a tutorial - how to upgrade Drupal 6 to Drupal 7 . In that post I'm talking about nescesarity to make backups, and give some examples.
Today we gonna put our site into Maintenace mode, disable all non-core modules, delete old files, and run an update.
Putting Drupal site into maintenance:
Go to the site maintenance page (admin/settings/site-maintenance) , select "Off-line" and save the configuration. If you have defined a custom maintenance theme in your settings.php file, comment it out before proceeding.
Change all themes to Garland:
Go to the Themes page, enable "Garland" and select it as the default theme. If you have been using a separate theme for administration, select "Garland" for your administration theme as well. If you are using a custom maintenance theme, comment out 'maintenance_theme' => 'your theme name' in settings.php.
Disable all non-core modules:
Go to the Modules page and disable all modules that are not listed under "Core - required" or "Core - optional". It is possible that some modules cannot be disabled, because others depend on them. Repeat this step until all non-core modules are disabled.
If you know that you will not re-enable some modules for the target Drupal version and you no longer need their data, then you should uninstall them under the Uninstall tab after disabling them.
Remove default.settings.php file:
On the command line or in your FTP client, remove the file sites/default/default.settings.php
Delete old files:
Remove all old core files and directories, except for the 'sites' directory and any custom files you added elsewhere. If you made modifications to files like .htaccess or robots.txt, you will need to re-apply them from your backup, after the new files are in place.
I'll not delete sites/all/modules folder - because latter I want to test again which modules I need to update, and which I don't need anymore.
Upload Drupal 7 files:
Download the latest Drupal release of the target version to a directory outside of your web root. Extract the archive and copy the files into your Drupal directory.
On a typical Unix/Linux command line, use the following commands to download
tar -zxvf drupal-x.y.tar.gz
This creates a new directory drupal-x.y/ containing all Drupal files and directories. Copy the files into your Drupal installation directory
cp -R drupal-x.y/* drupal-x.y/.htaccess /path/to/your/installation
If you do not have command line access to your server, download the archive using your web browser, extract it, and then use an FTP client to upload the files to your web root.
Run the update script:
Run update.php by visiting http://www.example.com/update.php (replace www.example.com with your domain name). This will update the core database tables.
If you are unable to access update.php do the following:
Open settings.php with a text editor.
Find the line that says:
$update_free_access = FALSE;
Change it into:
$update_free_access = TRUE;
Once the upgrade is done, $update_free_access must be reverted to FALSE.
If your update script runs without errors and you can view the home page of your upgraded website but none of your links are working (page not founds when clicking on menus etc) AND you were using clean URLs, go to /?q=admin/config/search/clean-urls and turn off clean URLs.
Backup your database:
Backup your database after the core upgrade has run.
Login to phpMyAdmin and copy database as backup (if you have access), if not download sql backup.
If you are upgrading from Drupal 6 to 7 and were using CCK (and perhaps additional modules) to create fields for your content types, you will need to upgrade the data in those fields as a separate step. Download the Drupal 7 CCK module, and turn on Content Migration. Go to Structure > Migrate Fields or http://example/com/admin/structure/content_migrate for a page to walk you through the migration process. There are now several types of fields in core, but not every type. You might need to download Drupal 7 versions of contributed modules to support other types of fields (such as the References module for nodereference fields and/or userreference fields).