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!
コメント