phpstormでPHPコマンドラインスクリプトをデバッグします
-
24-10-2019 - |
質問
私が使う phpstorm PHPをデバッグするための私の主なツールとして、そして非常に喜んでいます。これまでのところ、私はFirefoxを使用してスクリプトを実行してきましたが、Phpstormはブレークを完全にキャッチしています。
今、私はコマンドライン(ブラウザではない)を介してPHPスクリプトを実行している状況があり、コマンドラインを介してPHPスクリプトを実行するときにブレークをキャッチするためにPHPSTORMをセットアップする方法があるかどうかを知りたいですか?
解決
お願いします 視聴/投票 関連するphpstormの問題。
現時点では、構成は少し複雑です。のようにデバッグすることが可能であるはずです Zend KBで説明されています, 、偽のサーバーを使用します PHPリモートデバッグ phpstormの構成。このチュートリアルにはエラーがあることに注意してください。このようなquery_stringを(Windowsで)設定する必要があります。
SET "QUERY_STRING=start_debug=1&debug_port=10137&debug_host=127.0.0.1&debug_stop=1&no_remote=1&debug_session_id=10000"
(重要な引用の違いに注意してください)。
スクリーンショットに示されているようにphpstormをセットアップします。
を押します デバッグ メインツールバーのボタン。 PHPSTORMは、デバッガー接続のリスニングを開始します。
コマンドラインでスクリプトを実行します:
d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php
phpstormはブレークポイントにヒットします:
これは、Zend ServerのインストールでWindowsでテストされましたが、他のシステムやXdebugで類似している必要があります。
phpstormから直接デバッグしたい場合は、使用してください PHPスクリプト 構成タイプを実行/デバッグします。このプロジェクト用に構成されたPHPインスタンスはどちらかを持っている必要があります Zend Debugger また xdebug 構成ファイルで有効になります。
PHPホームおよびデバッガーモードを指定できます File | Settings | PHP
.
Zend Serverのインストールで確認しただけです(PHP Home: d:\dev\zend\ZendServer\bin
)そしてZend Debuggerは、私にとって完璧に機能します。
他のヒント
PHPSTORMでシェル/コマンドラインでXDebugを使用してPHPデバッグできるようにすることは非常に簡単です。
export XDEBUG_CONFIG="idekey=PHPSTORM"
Windows CLIでは、エクスポートの代わりにセットを使用します。
set XDEBUG_CONFIG="idekey=PHPSTORM"
PHPStormがPHPデバッグ接続を聴いていることを確認してください。
コマンドラインエンドからデバッグを無効にするには:
unset XDEBUG_CONFIG
これ(phpstorm)は、デフォルトのphpstorm ide-keyです。
- 実行]をクリックします。
- 構成の編集]をクリックします...
- グリーン +をクリックします
- PHPスクリプトを選択します。
- 名前フィールドに名前を提供します。
- ファイルフィールドにスクリプトへのフルパスを提供します。
- OK]をクリックします。
- このドロップダウンで構成したスクリプトを選択します。
- 実行またはデバッグ]ボタンをクリックします。スクリプトが実行され、設定されたブレークポイントをキャッチする必要があります。
スクリプトを実行すると、ここで出力を見ることができます。
スクリプトをデバッグすると、ここで出力を見ることができます。
その環境変数を確認してください SERVER_NAME
と SERVER_PORT
設定されています。 phpstormは、適切なマッピングを行う必要があります。 bashでエクスポートするか、phpscriptで手動でそれらを設定します。どちらの場合も、phpstormはそれを下に見つけることができます $_SERVER['SERVER_NAME']
と $_SERVER['SERVER_PORT']
正しく。
私にとって(macosで)それはそのように働きました:export XDEBUG_CONFIG="idekey=12345"
これらの提案はどれも私にとってうまく機能していませんでした。
同じ状況にある場合は、このコマンドを試してください(右のPHPインタープリターパスを確認してください)
/usr/bin/php -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 [PHP_SCRIPT]
macosでは、私は別のbash_profileを使用していました。私は最初に次のコマンドを実行しなければなりませんでした:
source ~/.bash_profile
これにより、PHPが内蔵/USR/BIN/PHPからXAMPPを介してインストールされたものに変更されました。 phpstormのXdebugは、上記のコマンドの後に動作し始めました。