概要
旧バージョンの Drupal 6.x 日本語ディストリビューションを,最新の Drupal 6.x コアにアップデートする方法を順を追って解説します。
注意
- Drupal コアをアップデートした結果,サイトになんらかの重大な障害が生じる場合があります。
- これを防ぐため,以下の手順でも説明していますが,アップデートを行う前に必ずデータベースと sites ディレクトリのバックアップをしてください。
- データベースのバックアップを Drupal の GUI を通して行える,Backup and Migrate というモジュールがあります。
- また,アップデート前に貢献モジュールを無効化し,テーマを Garland など Drupal コア付属のテーマにすることが推奨されています。(この作業はほとんどのマイナーバージョンアップでは不要と思われますが,実際にモジュールとコアの非互換性の問題が生じるケースもあるので,一応記しておきます。)
- 貢献モジュールを一括で無効化できるようにする,Contrib Toggle というモジュールがあります。ただし,http://drupal.org/node/390448 によると,あまりに多くのモジュールが有効になっている場合にはうまく作動しない,特定モジュールと干渉するなど,いくつかの問題が確認されているそうです。
- アップデート終了後にモジュールを再度有効にしたとき,新しいバージョンの Drupal コアと今まで使用していたモジュールやテーマとが衝突を起こす可能性があります。これを避けるためには,Step 12 でモジュールを有効にする際に,一つずつ有効にしていき,問題が起きないかを逐一確認するという方法があります。(必須ではありません)
- たとえば,もしモジュール A を有効にしたときは問題が起きなかったのに,その後モジュール B を有効にしたときに問題が発生した場合,モジュール B がその問題を引き起こしていると考えられます。
- このような場合には,問題を引き起こしているモジュールの Issue Queue に行き,ほかに同様の問題を抱えているユーザーはいないか,また解決法はないかをまず確認してください。もしその問題が未報告の場合には,Issue Queue にその問題を報告すると他のユーザーの手助けとなるかもしれません。また,場合によっては誰かがパッチを作成してくれることも期待できます。
- なお,さらに万全を期したい方には,本番用サイトとまったく同じテスト用サイトを構築し,まずそちらでアップデート作業を行ってみて,問題がなかったら本番用サイトにアップデートを施しなおすという2段階の作業を行うこともお勧めです(詳細は,英語ですが http://drupal.org/upgrade に記載されています。将来,日本語翻訳版を公開する予定です)。
- (Drupal コアのマイナーアップデートではほとんど起きませんが)まれに英語によるオリジナルの文章が変更されるときがあります。この方法に従ってアップデートされた日本語版 Drupal は,このようなオリジナルの文章の変更を反映していない可能性があります。
- (Drupal コアのマイナーアップデートではほとんど起きないと思いますが)Drupal コアに含まれるファイルやディレクトリの構造が将来変更される恐れがあります。この方法に従ってアップデートされた日本語版 Drupal は,このようなディレクトリ構造の変更を正しく反映できない可能性があります。
前提
- Unix 上で Drupal 6.x 日本語ディストリビューションが稼働中
- 以下のディレクトリに対して書き込み権限を持つ
- Drupal 6.x 日本語ディストリビューションがインストールされたディレクトリ(以後,主 Drupal ルートディレクトリ)
- 主 Drupal ルートディレクトリの親ディレクトリ(以後,親ディレクトリ)
- SSH(http://ja.wikipedia.org/wiki/Secure_Shell)などを使って,コマンドラインによりサーバーを操作することが可能
- bash(http://ja.wikipedia.org/wiki/Bash)が利用可能
- wget または curlコマンドのどちらかが使用可能
wget: http://ja.wikipedia.org/wiki/GNU_Wget , http://www.bookshelf.jp/texi/wget/wget-ja.html
curl: http://www.big.or.jp/~crane/cocoa/0800_internet/curl/ , http://www.hcn.zaq.ne.jp/___/unix/curl_manpage.html - 以下の説明では,/var/www/drupal が主 Drupal ルートディレクトリであると仮定して説明を続けます。この場合,/var/www が親ディレクトリになります。
手順
- ウェブブラウザでアップデートしたいサイトにアクセスし,Drupal をインストールした際に登録した管理アカウント(User ID 1)でログインする。
- ウェブブラウザで管理セクション >> サイトメンテナンス(?q=admin/settings/site-maintenance)に行き,サイトをオフラインモードにする。
- データベースおよび sites ディレクトリのバックアップをする。
- テーマを Garland にする。(必須ではない)
- 貢献モジュール,カスタムモジュールを無効化する。(必須ではない)
- (以後,Step 10 までターミナルでの作業)親ディレクトリに移動する。
cd /var/www
-
最新の Drupal コアをダウンロードする。2010/1/9 時点では 6.15。
wget http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz
wget の代わりに curl を使ってもよい。
curl -O http://ftp.drupal.org/files/projects/drupal-6.15.tar.gz -
ダウンロードしたファイルを解凍する。
tar -zxvf drupal-6.15.tar.gz
親ディレクトリ内に drupal-6.15 というディレクトリ(以後,新 Drupal ルートディレクトリ)が作成されます。 -
新 Drupal ルートディレクトリに移動する。
cd drupal-6.15
- 新 Drupal ルートディレクトリの内容を主 Drupal ルートディレクトリへコピーする。
find * -type f -not -name update.php -exec cp {} /var/www/drupal/{} \;
注
主 Drupal ルートディレクトリのパス(上の例では /var/www/drupal)はご使用中の環境に合わせて変更してください。また,主 Drupal ルートディレクトリのパスの最後に“/(スラッシュ)”を入れるのを忘れないでください。
メモ
cp コマンドのオプション -u が使えれば,destination と source file とを比較して,source file が新しいときだけコピーするということが可能かもしれません。 -
ウェブブラウザで Drupal ルートパス/update.php にアクセスし,データベースのアップデートを行う。
(ウィザード形式で行われますので,適切なボタンを押してください) - Step 5 で無効にした貢献モジュール,カスタムモジュールを有効に戻す。
- テーマを元に戻す。
- ウェブブラウザで管理セクション >> サイトメンテナンス(?q=admin/settings/site-maintenance)に行き,サイトをオンラインモードにする。
以上のプロセスを踏む事で,Drupal 6.15 以後で引き続き日本語ディストリビューションに含まれていた翻訳文を利用することができます。
Special Thanx
dokumori さん,satoshi.miyabe さん,qchan さん,Dokuro さん,osonoi さん,kuwamura さん,Antoine Lafontaine さん,分かりやすいチュートリアルを書いてくれた Chapter Three,そして drupal.org 上のドキュメント“Upgrading from previous versions”の編集に貢献してくれた名前も分からない多くのコミュニティメンバーたち(順不同)の協力と労力なしには,このチュートリアルは完成しなかったでしょう。この場を借りて感謝の意を表したいと思います。ありがとう!
