[drupal] Drupal 6.17にアップグレード

Submitted byshin on日, 2010-08-08 13:11
夏季休暇でちょっと暇ができたから ほぼ1年ぶりに頑張ってみた。

■■ターゲットの新旧比較:


環境の変化はだいたいこんな感じ
今まで 更新後
Drupal 6.14 6.17
CAPTCHA 6.x-2.0 6.x02.3-rc2
Taxonomy Menu 6.x-2.4-rc1 6.x-2.9
Acquia Marina 6.x-1.9 削除

ちなみに正式な手順は、
  1. 環境をバックアップ
  2. 取得したアーカイブを展開
  3. sites/以外を既存環境に上書き
  4. update.php実行
と、非常に簡単なんだけど、失敗したときが怖い(特にさくらはデータベースを1つしか)
持てないのでリカバが困難)ので着実なアプローチを目指す。

■■事前準備


  1. アーカイブを取得&作業フォルダに展開
    "入手可能な最新版"のエントリで変更すべきファイルはわかっているのでまず取り込んでおく。
    今回は、上記のとおり、Drupal本体,CAPTCHA,Google Analytics,Taxonomy Menu。
  2. 不要なファイルを消す
    トライアルで入れた sites/all/{modules/,themes/}のゴミや、メンテナンスされていないっポイモジュール(aquia_marina)を削除
    結果的に残ったのは、sites/all/{modules/captcha,themes/Google Analytics}
  3. 管理者(user_id=1)でログイン
    http://www.xxx.net/?q=user (クリーンURL OFF時)
  4. サイトのメンテナンスから、サイトをオフラインに
    http://www.xxx.net/admin/settings/site-maintenance
  5. モジュール/テーマを初期状態に近づける
    http://www.xxx.net/admin/build/modules
    OFFしたのは、 Hiragana Captcha(->Captcha), Google Analytics, Taxonomy Menu
    標準モジュールはOFFにする必要が無くなった様子
  6. 一応、この環境で問題なく動作することを確認
  7. データベースをダンプ
    うちは、データベースを定期的にdumpするスクリプトを作っているのでそれを実行
  8. サイトをバックアップ
    レンタルサーバーは(アクセスログを見れないので)調子が悪いときにはカット&トライ
    になるので、失敗した時を考えると必須作業

■■新環境の構築


  1. アーカイブとの相違部分を修正
    そうそう、web履歴書用にカスタマイズしていたpingジュールは標準に戻すことにした。
    1. .htaccess
      1. "Options -Indexes"をコメントアウト
        さくらは、.htaccessで、Optionsディレクティブ宣言を禁止している為
      2. "Options +FollowSymLinks"をコメントアウト
        さくらは、.htaccessで、Optionsディレクティブ宣言を禁止している為
      3. [/.htaccess] "DirectoryIndex index.php"を"DirectoryIndex index.php /index.php"に
        Options -Indexesの代替手段
      4. Rewrite関係のコメントアウトしている"RewriteBase /"を外す
      この後旧環境に上書きするのでわざわざ作業フォルダに作成しなくてもいい
    2. sites/default/setting.php
      1. オリジナルのsites/default/default.setting.phpをsetting.phpにコピー
      2. $db_url,$base_urlの修正を反映
    3. php.ini
      マルチバイト文字列対応の為に以下の内容で作成
      mbstring.func_overload = 0
      mbstring.language = neutral
      mbstring.http_input = pass
      mbstring.http_output = pass
      mbstring.encoding_translation = off
      mbstring.internal_encoding = UTF-8
      magic_quotes_gpc = Off
      register_globals = Off
      session.auto_start = Off
      
      旧環境のファイルをそのまま使える
      この後旧環境に上書きするのでわざわざ作業フォルダに作成しなくてもいい
    4. files/.htaccess,files/tmp/.htaccess
      空ファイルを作成
      DrupalがOptions付きの.htaccessを作成するのを防ぐため
      そもそもフォルダ自体が存在しないんだけど、
           この後旧環境に上書きするのでわざわざ作業フォルダに作成しなくてもいい
    5. themes/bluemarine/page.tpl.php
      AccessAnalyzerのタグを埋め込む
  2. 作業フォルダの内容を正規フォルダーにコピー
  3. update.phpを実行
  4. 環境再構築
    1. taxonomy_menu,captcha,Image Google AnaliticsモジュールをON
    2. オンラインモードに
    3. 様子見(^^;

おまけ。
Drupal本体を(日本語版でなくて)本家からダウンロードしたので、言語設定が 可笑しくなってしまったらしく、updateすると妙なメッセージが出たんだけど、メッセージはupdateの時だけだったし、とりあえずきちんと動いている様子