Drupalのインストール先ディレクトリの変更

前段:私のDrupal6導入の経緯

私のDrupal導入の流れは、次のような経緯をたどりました。

  1. 複数のサブサイトを複数のDrupal6の導入によって作成
  2. 複数のサブサイトを1つのDrupal6で運用するように変更(1)--> 断念
  3. 複数のサブサイトを1つのDrupal6で運用するように変更(2)
  4. 主サイトにDrupalを適用(ホームページ作成ソフトで作成していたコンテンツをDrupalに移植)

1.複数のサブサイトを複数のDrupal6の導入によって作成

  • http://sub1.~sample~.com/  (/public_html/sub1)
  • http://sub2.~sample~.com/  (/public_html/sub2)

2.複数のサブサイトを1つのDrupal6で運用するように変更(1)

 http://www.~sample~.com/Drupal/  (/public_html/Drupal)【追加】

サブ・ドメインからサブ・サイトにアクセスさせることを目指したが、シンボリック・リンクとサブ・ドメインの関連付けを行える環境がサーバにはなく(?)断念

3.複数のサブサイトを1つのDrupal6で運用するように変更(2)

サブ・ドメインでのアクセスを諦め、下位のディレクトリとしてアクセスさせる運用に変更(簡単に書くと、サブ・ドメインの設定を削除)

  •  http://www.~sample~.com/sub1/  (/public_html/sub1)
  •  http://www.~sample~.com/sub2/  (/public_html/sub2)
  •  http://www.~sample~.com/Drupal/  (/public_html/Drupal)

※sub1,sub2は、ただのシンボリックリンクで、実体は存在しません。

※詳細は、『1つのDrupalで複数サイト管理』で説明しています。
http://homepage.ok-jp.com/blog/20081120133

4.主サイトにDrupalを適用(ホームページ作成ソフトで作成していたコンテンツをDrupalに移植)

  1. 共用で使用するために導入したDrupalに主サイトの設定やデータの移植を行う
  2. Drupalのディレクトリを1階層上位(/public_html)に移動(move)する

色々と試行錯誤したのですが、私のレンタルサーバー環境では、 http://www.~sample~.com/ から http://www.~sample~.com/Drupal/ に設置したDrupalを稼動させることができなかったため、/public_htmlをDrupal設置ディレクトリに変更することにしました。

Drupal設置ディレクトリ変更手順

私が、設置ディレクトリを変更した目的は、主サイトにもDrupalを適用したかったからです。

ですから、主サイトの移行も踏まえた手順を示します。

主サイト用のDrupal環境セットアップ

まず、ディレクトリ変更前の状態で、http://www.~sample~.com/Drupal/にアクセスしながら主サイトのDrupal環境を整える(セットアップ&データの移植

※settings.phpは、”/public_html/Drupal/site/~sample~.com.Drupal/”に設置する

※settings.phpの内容は適宜修正(DB名、ユーザ名、パスワード、起点となるURLなど)

※たぶん、install.phpを稼動させてインストールする場合は、該当ディレクトリとsettings.phpが自動で作成されるのだろうと思います。(が、定かではありません。)

新サイト用のsettings.phpを設置する

”/public_html/Drupal/site/~sample~.com.Drupal/”に設置したsettings.phpを、”/public_html/Drupal/site/~sample~.com/”というディレクトリを作成し、コピーする

※settings.phpの内容は適宜修正(修正は、恐れく、URLの変更だけの対応になると思われます。ご自身でご確認の上行って下さい。

Drupal直下のファイル・ディレクトリを、”/public_html"にコピー

※この時点で、旧index.*にはアクセスされなくなります

また、サブディレクトリもindex.phpで稼動させていない場合は、ファイル NOT FOUNDのエラーになります。

これは、.htaccessの設定の影響です。

サブディレクトリに移行後も稼動させたいものがある場合は、.htaccessの記述を

# Set the default handler.
DirectoryIndex index.php

の部分を、

# Set the default handler.
DirectoryIndex index.php index.html

というように、自分が使用している拡張子のファイルを追加しておくことで回避できると思われます。

シンボリックリンクの付け替え

sub1とsub2のシンボリックリンクを新しいDrupal環境に切り替えます

【例】
rm sub1
ln -s ./ sub1

稼動確認

  • http://www.~sample~.com/
  • http://www.~sample~.com/sub1/
  • http://www.~sample~.com/sub2/

の各URLにアクセスし、管理画面なども含めて稼動確認します。

※恐らく、主サイトで問題が発生すると思います。その対処法は、このページの最後に記述します。

旧データの削除

稼動確認で問題がなければ、旧ファイル(/public_html/Drupal)を削除します。

Drupal設置ディレクトリ変更時に困ったことや注意点

削除やムーブができないファイル

Drupalの"sites/"ディレクトリの中だけだと思うのですが、Drupalが自動的にアクセス権を変更するファイルやディレクトリがあります。

ですから、データの移動をmoveで対応すると移行漏れファイルが発生してしまう恐れがあります。

copyののち、稼動確認が完了したら、旧ディレクトリ(/public_html/Drupal)のファイルを削除することで移動させる手順とした方が良いと思います。

また、ftpによってデータをアップロードする際も、上書きできないことが起こります。

これは、意図しないファイルの削除や変更を防止する為の機能です。

このことを知っていれば、「settings.phpを変更したのに反映されない!」ということで思い悩むことは回避できると思います。

主サイトで発生した問題

上記手順で、sub1、sub2は問題なく移行できたのですが、主サイトに問題が発生しました。

  1. テーマのスタイルシートが反映しない
  2. 管理画面を開き、その下の階層のメニューリンクをクリックすると画面が真っ白になる

勘なのですが、次のように考え対応しました。
テーマに関わる情報が、インストール先のディレクトリ情報も含めてDBに持ち込まれてしまっているのだろうと思い、次のように対応しました。

  1. 旧URL http://www.~sample~.com/Drupal/にアクセスし、管理画面で、クリーンURLの設定を無効にする
  2. 新URL http://www.~sample~.com/にアクセスし、管理画面のテーマメニューを開き、とりあえず、『保存』をクリックする
    --> スタイルシートが有効になる。(この時、旧URLにアクセスするとスタイルシートは無効になっている)
  3. 新URL http://www.~sample~.com/にアクセスし、管理画面からクリーンURLを選択し、設定を有効にする

これで、私の場合は、問題が解決し、移行が完了しました。

No votes yet

にほんブログ村 IT技術ブログへ人気ブログランキングへ