Drupal のアップグレード

Drupal のセキュリティアップデートが公開されたら、速やかに適用しなくてはならない。

危険を伴う作業であるため、注意して実行すること。

最新バージョンの準備

まず、何はなくとも最新バージョンの Drupal をダウンロードし、ローカルのディレクトリ上に展開する。
当サイトに適合するのは、Drupal 6.x 日本語ディストリビューションである。http://drupal.jp/drupal6/distribution から、最新バージョン(2012/2/14 現在、6.24)をダウンロードする。
 % wget http://downloads.sourceforge.net/drupal-jp/drupal-6.24-japanese_024.tgz
 % tar xf drupal-6.24-japanese_024.tgz

展開したディレクトリから、不要なファイルを削除する。
 % rm -fr profiles/ scripts/ sites/
 % find . -name '*.txt'|sed /robots.txt/d|xargs rm

このディレクトリをサーバの非公開ディレクトリにアップロードし、ファイルのパーミッションを設定する。
 % find sites/default/files -type d | xargs chmod 777

旧バージョンの準備

ついで、旧バージョンのサイトの準備を行う。
まずはサイトをオフラインにして、Backup and migrate でサイトのデータをバックアップする。
次に拡張モジュールを無効化する。
Multilanguage
すべてチェックアウト
その他
すべてチェックアウト

ここで、旧バージョンのディレクトリから最新版のディレクトリへ、robots.txt, .htaccess, sites/ をコピーする。
次に拡張モジュールのコピーである。運用中サイトの module のうち、以下が拡張モジュールとなる。

 backup_migrate diff i18n imageapi imagecache imce inline itweak_upload pearwiki_filter scanner taxonomy_access translation_overview update_locale wikitools

これらをディレクトリごと、最新版の module にコピーする。

最後に、旧バージョンの module/user/user.css を、最新版の module/user にコピーする。(Drupal のカスタマイズの、CSS の修正の項参照)

最新版と運用中のディレクトリを入れ替える

ここまできたら、旧バージョンの Drupal ディレクトリを非公開のディレクトリに移動し、最新版を公開ディレクトリに移す。
最新版のディレクトリ名が旧バージョンと同じになるよう、また旧バージョンのディレクトリを上書きなどしないよう、注意する。
なおこの間、作業しているブラウザを閉じてはいけない。誤って閉じてしまったときは http://www.hlab.sys.es.osaka-u.ac.jp/grasp/user を開くと、再ログインできる。

仕上げ

最新版のディレクトリを公開ディレクトリに移したら、閉じないでおいたブラウザページで再読み込みを行う。
さきほど無効にした拡張モジュールをもとに戻し、メッセージにしたがってアクセス権の再構築や、update.php の実行を行う。

管理セクション › リポート › 入手可能な最新版 を開いて、すべてのバージョンが最新であることを確認したら完了。
おつかれさまでした。

(参考)http://www.webgogo.jp/drupal/upgrade_5