[PC][Drupal] Drupal6.14にアップグレード

Submitted byshin on土, 2009-11-21 13:58
しばらくシステム更新していなかったら、Captchaを破ったSPAM投稿が出てくるし、カテゴリ一覧が
出なくなるし(これは設定し直したら解決した)、気持ちが悪いので頑張ってシステム更新。
ちなみに、6.9から6.14に5回リリースがあったんだけど、途中を端折って6.14をインストールするだ
けで(結果的に)OK。

低頻度とはいえ、それなりに更新の経験をしているんだけど、やっぱり慣れない。
.htaccessの更新を忘れてinternal errorが出てあせった。

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


環境の変化はだいたいこんな感じ
今まで 更新後
Drupal 6.9 6.14
CAPTCHA 6.x-2.0 (6.x-2.0)
Taxonomy Menu 6.x-2.3 6.x-2.4
Acquia Marina 6.x-1.9 (6.x-1.9)

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

■■事前準備


  1. 不要なファイルを消す
    トライアルで入れた sites/all/{modules/,themes/}にゴミが残っているので削除
    結果的に残ったのは、sites/all/{modules/captcha,themes/acquia_marina}
  2. 管理者(user_id=1)でログイン
    http://www.xxx.net/?q=user (クリーンURL OFF時)
  3. サイトのメンテナンスから、サイトをオフラインに
    http://www.xxx.net/admin/settings/site-maintenance
  4. モジュール/テーマを初期状態に近づける
    http://www.xxx.net/admin/build/modules
    OFFしたのは、 Taxonomy Menu,Image CAPTCHA,CAPTCHA, Acauia Marina
    標準モジュールはOFFにする必要が無くなった様子
  5. 一応、この環境で問題なく動作することを確認
  6. データベースをダンプ
    うちは、データベースを定期的にdumpするスクリプトを作っているのでそれを実行
  7. サイトをバックアップ
    レンタルサーバーは(アクセスログを見れないので)調子が悪いときにはカット&トライ
    になるので、失敗した時を考えると必須作業

■■新環境の構築


  1. アーカイブを取得&作業フォルダに展開
    今回使ったのは以下のモジュール
    1. Drupal6.14本体
      drupal-6.14-japanese_014.tgz
    2. CAPTCHA
      captcha-6.x-2.0.tar.gz
      ⇒ sites/all/modulesの下に
    3. taxonomy_menu
      acquia_marina-6.x-1.9.tar.gz
      ⇒ sites/all/modulesの下に
    4. acquia_marina
      captcha-6.x-2.0.tar.gz
      ⇒ sites/all/themesの下に
  2. アーカイブとの相違部分を修正
    標準のインストールプロセスだと、sites/は従来のまま、sites/以外はを上書き
    という手順なんだけど、sites/の下も変更がある見たいだし、sites/以外にカスタマイズ
    している所があるので、ここは地道に頑張る。
    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 /"を外す
      6.9→6.14で修正なし(そのまま使っても構わなかった)
      この後旧環境に上書きするのでわざわざ作業フォルダに作成しなくてもいい
    2. sites/default/setting.php
      1. オリジナルのsites/default/default.setting.phpをsetting.phpにコピー
      2. $db_url,$base_urlの修正を反映
      6.9→6.14で修正あり
    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のタグを埋め込む
    6. sites/all/themes/acquia_marina/page.tpl.php
      AccessAnalyzerのタグを埋め込む
    7. modules/ping/ping.module
      [2009/12/12追記]
      昔pingモジュールを変更したのを忘れていた
  3. 作業フォルダの内容を正規フォルダーにコピー
  4. update.phpを実行
  5. 環境再構築
    1. taxonomy_menu,captcha,Image Captcha,acqia_marinaモジュールをON
    2. オンラインモードに
    3. 様子見(^^;