Wordmove/wp-cli/MySQLコマンド各種
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:¥/¥/dev-labo.com¥/」を「https:¥/¥/dev-labo.com¥/」に置換という事になる。
find . -type f | xargs sed -i 's/http:¥/¥/dev-labo.com¥//https:¥/¥/dev-labo.com¥//g'
各種コマンドの主なポイント
find・・・ファイルやディレクトリの完全一致検索。前方一致やあいまい検索ではないので要注意。
find . -name 'hogehoge.php'
現在のディレクトリ配下で拡張子一致検索
find . -name \*.css
grep・・・ファイルの中の文字列を検索。ファイルの中身を調べる。
例)gehogehoディレクトリを除き、再帰的にhogehogeのファイル内文字列を検索
grep -rn 'hogehoge' . --exclude-dir=gehogeho
phpファイルだけを対象にしたい場合、以下を後尾に追加
–include=’*.php’
|(パイプ)・・・説明しにくいですが、1つ目の標準入力の結果を受け取って、次のコマンドに送る。つなぎ役。
xargs・・・パイプの後につけることが多い。xargs後に実行するコマンドに、標準入力から読み込んだ引数をつけてコマンドラインを生成して、実行
※コマンドライン(ただの表示)と標準入力の違いを理解する必要が有る。echoなどは、まさにただコマンドラインに表示するだけ。標準入力として受け取って処理をするわけではない。phpと一緒。標準入力なのか、ただの表示なのか
sed・・・文字列置換、行の削除
stdin,stdout,stderr・・・標準入力、標準出力、標準エラーの出力