Wordmove/wp-cli/MySQLコマンド各種

wordmove各種コマンドwindowsホスト派なあなただったら ssh-agent と wordmove をgit bashでallコマンド使うと便利でチョット快感ですよ!ハイパーセキュリティボーイのssh-agent 無しでは生きられませんw
誰か power shell でLinuxコマンド全部使える様なエイリアス記事書いてください!

//wordmoveコマンド各種
//push か pull か 必要に応じて使いわけてくださいね^^
//本番環境と同期の場合に間違うとヤバいから、とりあえず pull で書く

//いろいろある
wordmove pull --themes
wordmove pull --plugins
wordmove pull --uploads
wordmove pull --db

//全部。ssh-agent や Pageant 使うと快感w何回やっても気持ちいい、笑
wordmove pull --all

エイリアスもあります。 詳細は以下のgithubにて。 https://github.com/welaika/wordmove/blob/master/lib/wordmove/cli.rb

その他、wordmoveで見落としがちな点

VCCWのV2のwordmoveでよく見落としがちな点、Movefileで13行目のリモートのwordpress_pathはドキュメントルートを書き込み、最後尾に/(スラッシュが必要!)。

ドキュメントルートは、カスタマイズしてなければ、wp-contentやwp-config.phpのあるディレクトリを指します。

wordmoveコマンドはVCCW3の場合、vagrant sshの後、 cd ../../vagrantで/home/vagrantディレクトリから/vagrantディレクトリまで移動する必要があります。

データベース操作

各コマンドについて、該当のディレクトリにcdコマンドで移動してから行ってください。
・wp-cliの存在を確認
php wp-cli.phar --info

DBファイルエクスポート

//データベースエクスポートWP-CLI
wp db export --add-drop-table
//データベースエクスポートWP-CLI エクスポートファイルに名前を付ける
wp db export --add-drop-table wpdbsql_2017092801.sql

参考までに、MySQL(MariaDB)では次の通り。

//以下、MySQL(MariaDB)参考

//データベースMySQL(MariaDB)接続、シェル上
mysql -u user_name -D databese_name -p

//MySQL(MariaDB)DB一覧、MySQLログイン状態
SHOW DATABASES;

//MySQL(MariaDB)テーブル一覧、ログイン状態
SHOW TABLES FROM databese_name;

//MySQL(MariaDB)ポート確認、ログイン状態
show variables like 'port';

//MySQL(MariaDB)ダンプ、シェル上
mysqldump -u user_name -p -h host_name database_name > wpdbsql_2017092801.sql

gzip圧縮

gzip wpdbsql_2017092801.sql

gzipは圧縮できるけど、tarコマンドのアーカイブ機能が無い。tarは複数のフォルダ・ファイルを一つのファイルにまとめるアーカイブ機能を持つ。

gzip展開

gzip -d wpdbsql_2017092801.sql.gz

tarコマンド

複数のファイルやディレクトリを一つのアーカイブファイルに変換、gzipまで行う。
tar zcvf wp-content.tar.gz wp-content/
パーミッションを保持する時はpを付ける。
tar cvzfp wp-content.tar.gz wp-content/

tarコマンド展開

tar zxvf wp-content.tar.gz

必要に応じてpを付ける(圧縮したときのパーミッション設定を再現する)

tar zxvfp wp-content.tar.gz

zip圧縮

FileZillaでパーミッションで蹴られる際、TeratermでSSH SCPをwp-contentのエクスポート/インポートに使ったりする。
zip -r wp-content-2017092601.zip wp-content
-rで再帰的。-reでパスワード付。

zip展開

unzip wp-content-2017092601.zip

展開時のユーザーによるパーミッション変化に要注意。

DBファイルインポート

接頭辞の違いがある場合、忘れない様に注意!接頭辞以外に、SQLファイルなどすべてフルパスで、–path=ドキュメントルート のオプションを付ける場合などいろいろあります。

//DBファイルインポートWP-CLI
wp db import wpdbsql_2017092801.sql

DBファイルインポートMySQL(MariaDB)シェル上。DB名、DBユーザー名、DBテーブル接頭辞などで環境毎に相違がある場合、wp-cliでうまくいかない場合があります。wp-cliでうまくできない場合、MySQLコマンドを試して、wp-config.phpのDBアカウント設定も見直してください。

//MySQL(MariaDB)インポート、シェル上
mysql -u user_name -p database_name < wpdbsql_2017092801.sql

データベース内のテキストの検索・置換WP-CLI

//ドメイン置換WP-CLIドライラン
wp search-replace 'old-domain.dev' 'new-domain.dev' --dry-run
//ドメイン置換WP-CLI
wp search-replace 'old-domain.dev' 'new-domain.dev'

DATABASE SEARCH AND REPLACE SCRIPT IN PHPを使うよりもはるかに速く、容量が大きなデータベースの場合もWP-CLIは結構活躍します。wp-contentと同じ階層のワードプレスディレクトリまで移動しないと使えなかったと思うので、pwdコマンドで自分の現在地を確認して、cdコマンドで移動して使ってください。おそらくwp-config.phpの各種defineを使ってDBに接続していると思います。WP-CLIは開発元も再び火が灯った様な海外の記事を最近見ましたので、今後もさらに便利さに期待したいナイスツールです。

特定のディレクトリ内で再帰的にファイル内文字列を置換

以下はhttpからhttpsに変えるドメインのSSL化の場合、キャッシュファイル内などに対しておこなうといいです。置換したい文字列がスラッシュを含む場合、スラッシュの前でエスケープして「http:¥/¥/4649-24.com¥/」を「https:¥/¥/4649-24.com¥/」に置換という事になる。

find . -type f | xargs sed -i 's/http:¥/¥/4649-24.com¥//https:¥/¥/4649-24.com¥//g'

各種コマンドの主なポイント

find・・・ファイルやディレクトリの完全一致検索。前方一致やあいまい検索ではないので要注意。

find . -name 'hogehoge.php'

現在のディレクトリ配下で拡張子一致検索

find . -name \*.css

grep・・・ファイルの中の文字列を検索。ファイルの中身を調べる。

例)gehogehoディレクトリを除き、再帰的にhogehogeのファイル内文字列を検索
grep -rn 'hogehoge' . --exclude-dir=gehogeho

|(パイプ)・・・説明しにくいですが、1つ目の標準入力の結果を受け取って、次のコマンドに送る。つなぎ役。

xargs・・・パイプの後につけることが多い。xargs後に実行するコマンドに、標準入力から読み込んだ引数をつけてコマンドラインを生成して、実行

※コマンドライン(ただの表示)と標準入力の違いを理解する必要が有る。echoなどは、まさにただコマンドラインに表示するだけ。標準入力として受け取って処理をするわけではない。phpと一緒。標準入力なのか、ただの表示なのか

sed・・・文字列置換、行の削除

stdin,stdout,stderr・・・標準入力、標準出力、標準エラーの出力

WordPress/kusanagi/Azure/AWS/kintoneの開発運用相談

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

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