記事の多いWordPressをサクッとMAMPにインポートする方法

WordPressの改修で本番環境をローカル環境にもってこないといけない時に、本番環境のデータベースのサイズがすごく大きくて、phpMyAdminでエクスポートが出来てもインポートが出来ない時があります。そんな時にWP-CLIをMAMP環境で動くようにしておけば、phpMyAdminを使わなくてもサクッとデータベースのインポートが出来ます。

目次

WP-CLIとは

WP-CLIとはA command line interface for WordPressのことで、黒い画面からWordPressの操作を色々できるようにしてくれる便利なツールです。

例えば、WordPressのインストールやテーマ、プラグインのインストールから有効化、データベースのインポート・エクスポートがコマンドラインから出来ます。

MacにWP-CLIをインストール

wp-cli.pharをダウンロード

参考ページ:http://wp-cli.org/

まずは wp-cli.phar をGithubからダウンロードします。
黒い画面を開いて、任意の場所で以下のコマンドを実行。

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

curlとは

ファイルのダウンロードやアップロードを行うコマンドです。
-O (大文字のオーです。) のオプションを付けると、HTTP 1.0でリクエストすることになります。
http://itpro.nikkeibp.co.jp/atcl/column/14/230520/080400003/

動作確認

ダウンロードしたら、同じディレクトリで以下のコマンドを実行。

php wp-cli.phar --info

pharとは

pharとは、要するに単に複数のファイルをひとつにまとめられるというだけのことみたいです。
概念としては、zipみたいに複数のファイルをひとつに固めておいて、使うときに特定のファイルだけ取り出すというイメージでしょうか。
というか実際にpharとzipの変換とかもできたりします。
http://qiita.com/rana_kualu/items/d868604a1f54c2f93a7c

以下のようなメッセージが出力されればOKです。

PHP binary:	/usr/bin/php
PHP version:	5.4.24
php.ini used:
WP-CLI root dir:	phar://wp-cli.phar
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	0.17.0

wpコマンドで動くようにする

次にwpコマンドで動くように設定します。
まず、以下のコマンドでアクセス権を変更します。

chmod +x wp-cli.phar

chmod +x とは

chmodで、ファイルやディレクトリーのアクセス権限を変更することが出来ます。
+xで、実行権限を付与しています。+が追加を意味し、xが実行権限です。他にはr(読み込み権限),w(書き込み権限)があります。ここではユーザーを省略されてます。省略されるデフォルトa(全て)に権限を付与するみたいです。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230728/

次に、wp-cli.pharをwpという名前にリネームして、/usr/local/bin/に移動させます。

sudo mv wp-cli.phar /usr/local/bin/wp

sudoとは

指定したユーザーでコマンドを実行する。
http://itpro.nikkeibp.co.jp/article/COLUMN/20071205/288862/

sudoの後にユーザーを指定していないので、ここでは「root」を指定していることになります。

mvとは、moveの略ですかね。ファイルを移動させたりリネームさせたりするときに使います。
今回の場合では、wp-cli.pharのファイルを /usr/local/bin/ のディレクトリーにwpというファイル名で移動するということになります。

なぜ、usr/local/bin/ に保存をするのか。

/usr/local ディレクトリは、システム管理者がソフトウェアをローカルにインストールするために用いる。 /usr/local ディレクトリとして隔離されるため、同名のファイル名で既存のファイルを上書きするなどして、 /usr ディレクトリを含め、システムが破壊されてしまうことが防止される。 また、 /usr/local ディレクトリ下は FHS準拠のディレクトリ構造を取り、bin, etc, games, include, lib, man, sbin, share, src 以外のディレクトリを直下においてはならない。

/usr/local とは何なのか
http://hateda.hatenadiary.jp/entry/2014/02/02/191807

FHSはFile Hierarchy Standardのことですね。標準なファイル構造といったところでしょうか。
こういうファイルはこのディレクトリに入れようね!とルール付けされてます。

binとは

ここには、システム管理者と一般ユーザーの両方が使う、極めて基本的なコマンドが入っています。ほかのファイルシステムがマウントされていない、シングルユーザーモードでも一通りの作業が行えるコマンド群です。
http://www.atmarkit.co.jp/ait/articles/0108/07/news002_2.html

これでOKです。うまくいったか確認の為に以下のコマンドを実行してみます。

wp --info

以下のようなメッセージが出力されればOKです。

PHP binary:	/usr/bin/php
PHP version:	5.4.24
php.ini used:
WP-CLI root dir:	phar://wp-cli.phar
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	0.17.0

MAMPで動くようにする

MAMPで動かす場合は、MAMPが使ってるPHPと同じものを使わないとMySQLがエラーになるらしいです。
上記の出力メッセージをみたら、 PHP binary: /usr/bin/php となっており、/usr/bin/php を参照しています。
その参照先をMAMPのPHPに変更する必要があります。

bashを使ってる場合は、.bash_profileファイルに以下のコマンドを記述します。
zshを使ってる場合は、.zshenvファイルに以下のコマンド記載すればOK。
参考ページ:http://stackoverflow.com/questions/4145667/how-to-override-the-path-of-php-to-use-the-mamp-path/10653443#10653443

export MAMP_PHP=/Applications/MAMP/bin/php/phpX.X.X/bin
export PATH="$MAMP_PHP:$PATH"

※どのバージョンのPHPを利用しているかは各々で違うと思いますので、phpX.X.Xは各自のMAMPの設定を確認してください。

exportとは

一度定義された変数はそのシェルの中だけで有効です。新たに起動されたシェルスクリプトの中で定義された変数は元のシェル(親シェル)は全く影響しませんし、逆に親シェルからは参照することができません。また、親シェルで定義した変数はそのままでは子供シェルでは参照できません。子においても参照したい場合は以下のようにexportを使います。

http://www.atmarkit.co.jp/ait/articles/0010/19/news003.html

これで、利用するPHPの向き先が変更出来ます。
ターミナルを再起動して、以下のコマンドを実行してみてください。

wp --info

そうすると以下のようなメッセージが出力されます。

PHP binary:
PHP version:	5.3.13
php.ini used:	/Applications/MAMP/bin/php/php5.3.13/conf/php.ini
WP-CLI root dir:	phar://wp-cli.phar
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	0.17.0

php.ini used: /Applications/MAMP/bin/php/php5.3.13/conf/php.ini と書かれています。利用するPHPが変更になりました。

以上の設定で、WordPressがインストールされているディレクトリーに移動し、wpコマンドを実行すると何かしら反応があると思います。
ですが、これだけだとWordPressのインポートが出来ませんでした。

以下のコマンドを実行すると・・・

wp db import xxxx.sql

以下のようなメッセージが返ってきます。

sh: mysql: command not found

mysqlのコマンドがないと言われます。

MySQLのパスも通してあげる

最後に、
bashを使ってる場合は、.bash_profileファイルに、
zshを使ってる場合は、.zshenvファイルに以下のコマンド追記すればOK。
参考ページ:https://github.com/wp-cli/wp-cli/issues/1223

export PATH=$PATH:/Applications/MAMP/Library/bin/

これで、WP-CLIが動くようになると思います。
ターミナルの再起動を忘れずに!

あとは、本番環境からエクスポートしたデータベースのファイルを wp-cli を使ってインポートすればOK!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!

「エンジニアのためのWordPress開発入門」を執筆しました!

WordPressを使った開発案件は依然多く、それに携わるWebエンジニアも多数存在します。ただし、モダンな開発手法に慣れたWebエンジニアがWordPressに初めて触れたとき、その独特のアーキテクチャやシステムの構成に戸惑いを感じることがあるかもしれません。だが、WordPressは、それらを補ったうえにさらに強力なメリットを持ち合わせています。本書は、PHPプログラマがWordPressで開発する際に必要な基礎知識から、現場で役立つ具体的なカスタマイズ手法や開発のポイントについて詳しく解説しています。

この記事を書いた人

NPO法人のHP制作(WordPress)やkintoneを使った業務システムの構築をしています。サイボウズ株式会社公認kintoneエバンジェリスト/CoderDojo西宮と梅田のチャンピオン/認定NPO法人宝塚NPOセンター理事/NPO法人SEIN理事/

コメント

コメントする

目次
閉じる