WordPress: 引っ越しを行う方法

  • ---

    LINEで送る
  • -

    ブックマーク
  • -

    pocket
  • -

    rss
他言語サイト
en_US en_US
wordpress image
イラストACの画像をもとに加工しています。

WordPressで、本番環境からコピーして開発環境を作成したり、開発環境からコピーして本番環境を作成することがあります。

その作業は大きく分けて

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

のコピーがあります。

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

コピー先WordPress環境の構築

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

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

データベースの引っ越し

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

MySQL, MarriaDBのバックアップ方法

データベース設定の変更

データベースの設定が新しい環境で変わる場合、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)での方法です。

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の本
post-cta-image

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

  • WordPressの基本
  • Webサイト作成から運用まで全体的に学ぶ
  • ブログサイトの運営からサイトの収益化を学ぶ
  • サイト作成・運営 + 集客の方法を学ぶ
  • WordPressからPHPプログラミングを学ぶ
  • 最新のWordPress(バージョン5)に対応した本

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

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


WordPressの本7選

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

top
この記事を気に入ったらぜひシェアも!!