Maccle

運用中のWordPressのインストールフォルダを変更する方法

約 6 分

サイトURLとWordPressのインストールフォルダが同一環境で運用中のサイトを、ファイルアクセスやら運用ポリシーやらの都合でインストール先(WordPressのデータがある場所)を変更しなきゃいけなくなった場合の手順メモ。

運用中なので、ダウンタイムは1秒たりとも許されない前提で、こんな感じでやってみた。

移行条件(例)

  • サイトの(外部)URLはもちろん変更なし。
  • WordPress専用のフォルダに本体をごっそり引っ越し。

    /public_html/home/mysite/
       ↓
    /public_html/home/mysite/wordpress/

    (サブディレクトリ)に移動する。

1. ドキュメントルートフォルダに残すものを洗い出し

WordPress自体がドキュメントルートからサブディレクトリに移動するので、最終的にルートに残るファイルは最低限これだけ。

  • .htaccess
  • index.php

ただし、”index.php”は後で修正が必要(後述)。

他に、個別に作成したファイルやフォルダなどがあれば、それらも念のため残しておく。
あと、記事やテーマ内でstaticなパスを指定してる場合があれば、それらも影響を受けないかチェックしておきましょう。

2. 移行後の影響範囲も洗い出してみる

WordPressのインストールフォルダを変更すること自体は、特に難しいことは全くないのですが、パスが変わることによって生じる影響も事前にピックアップしておきましょう。

一番影響があると思われるのは、記事内やウィジェットなどで img タグを用いて表示している画像表示かな?

移行に伴い、アップロードフォルダ(/wp-content/uploads/)も当然サブディレクトリに移動してパスが変わりますが、WordPressの管理画面からインストールパスを変更しただけでは、記事内のimgタグなどのイメージ参照先アドレス(src)まで書き換えてくれません

まぁ、これは1行のSQLコマンドで一括置換できるので、移行の最後にやる作業(後述)としてピックアップしておきましょう。

その他、同様に “wp-content”フォルダ内のパスにあるファイルについて、記事やウィジェットで何かしらリンクしている箇所があるなら、それらも置換対象としてピックアップしておきます。

3. WordPress本体を一旦ローカルにコピー(バックアップ)

サーバー(ドキュメントルート)上にあるWordPress関連のファイルを、一旦すべてローカルにコピーしてバックアップしときます。

バックアップ(移動)が必要なものはこんな感じ。

  • “wp-admin”フォルダ
  • “wp-content”フォルダ
  • “wp-includes”フォルダ
  • .htaccess
  • index.html
  • wp-*.php (※wp-から始まるphpファイルすべて)
  • xmlrpc.php

4. ルートフォルダの”index.php”を書き換え

“.htaccess”と”index.php”は、ドキュメントルートと、移動先のWordPressインストールフォルダの双方にコピーします。

ただし、ドキュメントルートに残す “index.php”は、別途ルート用にコピーしてから、インストールフォルダの変更に合わせて以下のように予め修正して、ローカルに保持しておきます。

に修正。

5. ローカルにコピーしたWordPress本体を、新しいインストール先に転送

手順2で取得したWordPress関連のファイルを、今度は移動先のフォルダ(サブディレクトリ)にFTPでアップロードします。

※”index.php”は手順3で修正していない、サーバーからコピーしたものをそのまま転送。

6. WordPressインストールディレクトリを切り替え

物理データの移行は一通り完了したので、いよいよWordPress管理画面からWordPress本体のアドレスを切り替えます(DB更新)。

「設定」=>「一般設定」=>「WordPress アドレス (URL)」にセットされているURLにWordPress本体をコピーしたサブディレクトリ名(wordpress)を追記します。

7. ドキュメントルート用の”index.php”を転送

手順3でコピー&修正しておいた”index.php”を、ドキュメントルートにFTPで転送します。

8. パーマリンクの再設定(.htaccessの再保存)

パーマリンクを変更している場合は、サブディレクトリに変更された、新しい管理画面のアドレス(http://hogehoge.com/wordpress/wp-login.php)からログインして、パーマリンクの設定を再保存して .htaccessを書き換えます。

PHPがセーフモードのサーバーの場合は、手動で書き換えるかパーミッションの変更もお忘れなく。

9. 記事内のimgタグの画像URLをSQLで一括置換

手順2で触れたように、管理画面からWordPressのパスを変更しても、記事のデータは更新してくれません。

“wp-content” 配下へリンクを貼っていた記事内の文字列を新しいパス(http://hogehoge.com/wordpress/wp-content/)に変更しないと、imgタグやアンカーテキストでリンクしていたパスがリンク切れで表示されない状態になってます。

これについては、SQLのUpdateコマンドで置換すればOKです。

今回のサンプルの場合、

http://hogehoge.com/wp-content/

を検索キーにして、

http://hogehoge.com/wordpress/wp-content/

に置換してやれば、一瞬でパスの置き換えは完了です。

10. 移行前のWordPress本体をサーバー上から削除

トップ、アーカイブ、シングルページをくまなくチェックして問題なく移行が完了したことが確認できたら、サーバー上に残っている移行前のドキュメントルートにあるWordPress本体をごっそり削除しましょう。

ドキュメントルートから削除するデータは、手順2のうち、”index.php”と”.htaccess”以外のWordPress関連のフォルダとファイルすべて。

以上の流れで、1秒もダウンタイムを発生させずに運用中のままWordPressインストールフォルダの移行は完了です。

About The Author

某IT系なんちゃってエンジニアヨーダ
Apple好きだけど盲目マカーは気持ち悪いと思ってる中道だと思い込んでるしがないダメダメエンジニア。

今もってるApple製品↓
Macbook Pro 15 inch, iMac 27 inch (Late 2009), iPhone 6 Plus, iPad (初代! いらない!)
Follow :

Leave A Reply

*

Comment On Facebook