今日wp-cli 0.14.1に更新しましたが、もう一度MySQLの問題が発生しました。私はWindows、Wampserver、およびCygwinを使用しています。
私が最後のリビジョン(0.14.0)に初めて更新したとき、同様の問題があり、GitHub ディスカッションからの情報を見つけて使用しました。これは、php.iniの「variables_order」が原因である可能性が高いと考えています。GPCSではなくEGPCSのデフォルトを強制するために、iniファイルでコメントアウトしました。それはそれを大事にしました。次のリリースでこれを修正することについての言及がありました。
ここで、0.14.1に更新し、「wp core config ....」を実行してwp-config.phpファイルを作成しようとすると、コマンドラインエラーが発生します。
MYSQL_PWD is not recognized as an internal or external command.
私はgithubスレッドに戻り、scribuが議論された変更を行ったことを確認しました。私はそれへのリンクをたどって、それがいくつかの光を当てるかどうかを見ました。328行目で変更を確認しましたが、その変更が問題を引き起こしているように見えるため、今何を試すべきかわかりません。
参考までに:DOSまたはCygwinコマンドラインからmysqlを使用しても問題はありません。どちらも同じ実行可能ファイルを参照し、正しく動作します。完璧に。
任意の助けいただければ幸いです。
2014年3月8日更新
注:(1)ユーザー名またはパスワードは一時的なものであり、これは私のローカルマシンの1つにあるため、公開する必要はありません。(2)このデバッグセッションでpharファイルを使用していることがわかります。binフォルダーにある「インストール済み」バージョンの「wp」を使用しても、まったく同じことが起こります。
これは、このwp-cliコマンドで開始したPHPStormのデバッグセッションです。
Boss@Bonkers /cygdrive/c/wamp/www/wpsandbox
$ ../wp-cli-0.14.1.phar core config --dbhost=127.0.0.1 --dbname=wpsandbox --dbuser=root --dbpass=Bonkers --dbprefix=sndbx_
utils.phpのブレークポイントは、331行目に設定されています。
$final_cmd = $cmd . assoc_args_to_str( $assoc_args );
実行のために333行に渡される最後のコマンドを作成します。
$proc = proc_open( $final_cmd, $descriptors, $pipes );
これは、行334〜339を処理してwp-cliを終了し、bashコマンドラインにエラーメッセージを生成する直前の変数のステータスを含むデバッグイメージです。
Boss@Bonkers /cygdrive/c/wamp/www/wpsandbox
$ ../wp-cli-0.14.1.phar core config --dbhost=127.0.0.1 --dbname=wpsandbox --dbuser=root --dbpass=Bonkers --dbprefix=sndbx_
'MYSQL_PWD' is not recognized as an internal or external command,
operable program or batch file.
Boss@Bonkers /cygdrive/c/wamp/www/wpsandbox
$
wp-cliはよく構築されたソフトウェアであることを知っているので、途中で何かが足りない可能性が高いです。(コマンドラインとPHPStormを一緒に動作させることは、私にとって新しいツールであるため、時間のかかる作業でした。)時間が許す限りそれを続けますが、手掛かりがあればそれが役立つでしょう。
更新:03/29/14
チケットをありがとうとscribuをマージしますが、残念ながら問題は解決しません。同じエラーが発生します。
最初に、pharファイルを再ダウンロードした後、チケットとマージの前とまったく同じコードを見つけたので混乱しました。WTFの瞬間。したがって、GitHubのビルドディレクトリを確認したところ、マージの2日前にファイルの日付が付けられているため、変更が含まれていなかったはずです。
私は毎晩つかみ、プロジェクトをリロードし、putenv()で変更がありましたが、Bashは以前と同じエラーをスローします。
以来、それはそうです、この変更 WP-CLIはCygwinのと互換性がありませんでした。
更新:2014年4月19日
バージョン0.15.0は4/15にリリースされたので、インストールして上記のすべてのコマンドを実行しました。wp-cliは、0.14.1より前のバージョンと同様に機能しました。0.14.1と0.15.0を比較したところ、次のことがわかりました。
v0.14.1の326〜339行目は次のとおりです。
if ( isset( $assoc_args['pass'] ) ) {
$cmd = esc_cmd( 'MYSQL_PWD=%s ', $assoc_args['pass'] ) . $cmd;
unset( $assoc_args['pass'] );
}
$final_cmd = $cmd . assoc_args_to_str( $assoc_args );
$proc = proc_open( $final_cmd, $descriptors, $pipes );
if ( !$proc )
exit(1);
$r = proc_close( $proc );
if ( $r ) exit( $r );
v0.15.0の326〜342行目が次のようになりました。
$pass = $assoc_args['pass'];
unset( $assoc_args['pass'] );
$old_pass = getenv( 'MYSQL_PWD' );
putenv( 'MYSQL_PWD=' . $pass );
$final_cmd = $cmd . assoc_args_to_str( $assoc_args );
$proc = proc_open( $final_cmd, $descriptors, $pipes );
if ( !$proc )
exit(1);
$r = proc_close( $proc );
putenv( 'MYSQL_PWD=' . $old_pass );
if ( $r ) exit( $r );
これで問題が解決しました。wp-cliがCygwinで再び動作するようになりました。少なくとも、ここで使用したコマンドだけでなく、このポイントを通過することに依存しているいくつかのコマンド(インストール)も同様です。