ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

WordPress 引っ越し方法を手順を踏んで分かりやすく解説

wordpress image
イラストダウンロードサイト【イラストAC】
の画像をもとに加工しています。

WordPressの引っ越し作業は大きく分けて

  • データベース
  • プラグイン
  • テーマ
  • メディアファイルなどアップロードファイル

のコピーがあります。

これからご紹介する方法はWordPressのマルチサイトでも使えます。

どんなシステムにも引っ越し作業はありますが、WordPressにもあります。

本番環境から開発環境を作る。

開発環境から本番環境を作る。

同じシステムを複数立ち上げ。

システムエラーの復旧作業。

これらの場面に出会ったときスムーズにするための解説です。シンプルに行きます。

コピー先WordPress環境の構築

はじめに、引っ越し先のWordPress環境を用意します。

  • Webサーバ
  • DBサーバ(使用するデータベース作成も行う)
  • PHP(ないとき。Linuxならインストールされていることが多い。)
  • WordPressのインストール

KUSANAGIなら、これらをぜんぶまとめてインストール・管理できます。超高速WordPressなのもGoodです。

データベースの引っ越し

WordPressのバックアッププラグインや、mysqladminなどデータベースのバックアップコマンドでバックアップ(.sql)を作成します。

データベース設定の変更

データベースの設定が新しい環境で変わるとき、wp-config.phpの設定情報を変更します。

wp-config.phpのDB定義
define('DB_NAME', 'db-name');
define('DB_USER', 'db-user');
define('DB_PASSWORD', 'db-password');

/** ここからは変更する必要がある場合。変えることはほとんどない。 */
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

データベース情報のインポート

mysql -uuser -ppassword db_name < backup.sql

データベースのリストアを行います。上は、MySQL(MarriaDB)での方法です。

ドメインの変更

引っ越し先のドメインが変わらないときは、ここは飛ばしてください。

WordPressのコマンドツールを使って、データベースに登録されているドメインをすべて一括置換します。

ここではSQLの一括置換は使いません。

wp-cliコマンドのDBのドメイン一括置換
wp search-replace 'old-domain.com' 'new-domain.com'

マルチサイトのときは、子サイトのテーブルが置換されないので、オプションをつけます。

マルチサイトのドメイン一括置換
 wp search-replace 'old-domain.com' 'new-domain.com' --network

--networkオプションは、マルチサイトの子サイトのテーブルも置換します。

マルチサイトのときは、wp-config.phpに設定を追加します。

wp-config.phpの設定
define('DOMAIN_CURRENT_SITE', 'new-domain.com');
  • SQLの一括置換は使わない。
  • 一括置換は、Wordpressのコマンド『wp search-replace』を使う。

エラーが出て困ったときは

ドメインの一括置換で次のエラーが発生することがあります。

Error: Site 'sample.test/' not found. Verify DOMAIN_CURRENT_SITE matches an existing site or use --url=<url> to override.

このエラーは、DBへ新しいデータをインポートする前に、wp-config.phpでDOMAIN_CURRENT_SITEを指定したら起きるデータの不整合です。

(すでに作成済みのテスト環境に、最新のDBデータをインポートするときなどで発生します。)

wp-config.php新しいドメイン
インポートするデータ古いドメイン

これが発生することも想定してドメイン一括置換のコマンドを変更します。

変更後のドメイン一括置換
wp search-replace 'old-domain.com' 'new-domain.com' --url="old-domain.com" --network --path=/home/kusanagi/html/DocumentRoot

ドメインの不整合を直すために、--url="old domain"を使って、インポートするときのDOMAIN_CURRENT_SITEの値を無理やり変更します。

(wp-config.phpの値はそのままです。)

WordPressのインストールディレクトリ以外でwpコマンドが実行できるように、--pathオプションもつけました。

このコマンドはマルチサイト以外でも使えるので、ドメイン一括変更はこれで実行します。

データベースの内容を入れ替えるツールをつくりました。データベースのインポートファイルがあれば、いままでのデータベースの処理を一気に行います。bashシェルスクリプトです。

WordPress環境の引っ越し

プラグインやテーマのソースファイル、アップロードされたメディアファイルなどのバックアップを新しい環境のWordPressへコピーします。

バックアップはWordPressのプラグインが提供されているので、定期バックアップをしておくことをおすすめします。

バックアッププラグインにはデータベースのバックアップが含まれるものもあります。

おすすめなのはBackWPupです。データベース、プラグイン、テーマ、メディアを含めたアップロードファイルのバックアップができます。

WordPress環境全体のバックアップもできます。

プラグインの引っ越し

DocumentRoot/wp-content/pluginsのプラグインファイルを新しい環境へコピーします。すでに存在するプラグインは上書きしてもよいですが、念のため重複するプラグインは引っ越し先で一度削除してからコピーします。

次に、管理画面の「インストール済みのプラグイン」でコピーしたプラグインが表示されることを確認します。表示されることを確認したら各プラグインを有効化します。

DBの引っ越しが終わっていればプラグインの設定情報もコピーされているので作業は以上です。

テーマの引っ越し

DocumentRoot/wp-content/themesのテーマファイルを新しい環境へコピーします。

もしかすると、テーマファイルのカスタマイズでurlのドメインを直接記述しているかもしれません。その場合は、ドメイン名を新しい環境に合わせて変更してください。

本来はドメインを直接記述するのはよくありません。WordPressで用意されている関数を使いましょう。

メディアファイルなどアップロードファイルの引っ越し

DocumentRoot/wp-content/uploadsのファイルを新しい環境へコピーします。

引っ越し作業は以上です。

Permission deniedが出たときの対応

引っ越し作業が無事に終わりいざ動作確認を行ってみると、「Permission denied」が発生する場合があります。

これはファイルやディレクトリの権限エラーが発生しています。tar.gzなどで圧縮されたファイルを展開してから新しい環境へ転送した場合などで起きます。

バックアップファイルはだいたいtar.gzなどで圧縮されているので、新しい環境のサーバ上で展開するようにしましょう。

それでも発生する場合は、それぞれのディレクトリやファイルの権限をchmodコマンドを使って引っ越し前と同じ権限に変更します。

前の投稿
WordPressのAjaxでセキュアな通信を行う
WordPressでjQueryの$が使えないのはJavaScriptの基本構文を分かってないから。
次の投稿

WordPressの本

post-cta-image

たくさんあるなかで、WordPressの基本が学べる、目的別に学べる本を選びました。

  • WordPressの基本。
  • Webサイト作成から運用まで全体的に学ぶ。
  • かんたんなカスタマイズを学ぶ。
  • 何も分からないところから学ぶ。
  • WordPressからPHPプログラミングを学ぶ。

の5冊です。どうしてもネット上で調べて勉強するのが苦手という人におすすめです。

この内容をモノにすればほかの本は必要ありません。あとは自分の力で、書籍を使わずにインターネット上にある情報だけで学んでいけます。

コメントを残す

*