PhpStormでXdebugのリモートデバッグを設定する方法

PhpStormでXdebugのリモートデバッグを設定する方法

  • このエントリーをはてなブックマークに追加

システムエンジニアのにしだです。 最近printデバッグに限界を感じたので、PhpStormでXdebugのリモートデバッグ設定をしてみました。 リモートサーバ環境はCentOS6.4でphp-fpmを使用しています。

Xdebugの主な機能

XdebugはPHP用のデバッグツールで、主に下記の機能があります。

  • 実行時プロファイリング
  • エラー時のスタックトレースを表示
  • var_dumpの出力結果を整形
  • リモートデバッグ

Xdebugをインストールする

peclからもインストールできますが、今回はepelから入れます。

 $ sudo yum --enablerepo=epel install php-pecl-xdebug 

Xdebugの設定です。 xdebug.remote_portのデフォルト値は9000らしいのですが、php-fpmと被るため9001にしました。

 $ sudo cat /etc/php.d/xdebug.ini ; Enable xdebug extension module zend_extension=/usr/lib64/php/modules/xdebug.so xdebug.default_enable=1 xdebug.remote_enable=1 xdebug.remote_port=9001 xdebug.remote_handler=dbgp xdebug.remote_autostart=1 xdebug.remote_connect_back=1 

php-fpmをリスタートします。

 $ sudo service php-fpm restart

設定が反映されているか確認します。

 $ php -i | grep 'xdebug'
続きを読む

DBGpプロキシをインストールする

環境によっては必要ないかもしれませんが、複数のクライアントマシンから接続するため、DBGpプロキシをインストールします。 Xdebug側ではxdebug.remote_connect_back=1の設定をすることで、複数のIPアドレスからの登録が可能になります。 ダウンロードして配置します。

 $ cd /usr/local/src/ $ sudo wget http://downloads.activestate.com/Komodo/releases/8.5.1/remotedebugging/Komodo-PythonRemoteDebugging-8.5.1-82367-linux-x86_64.tar.gz $ sudo tar xvfz Komodo-PythonRemoteDebugging-8.5.1-82367-linux-x86_64.tar.gz $ sudo ln -s /usr/local/src/Komodo-PythonRemoteDebugging-8.5.1-82367-linux-x86_64/pydbgpproxy /usr/local/bin/ 

起動します。

 $ sudo pydbgpproxy -i 172.16.3.101:9001 -d 127.0.0.1:9000 

エラーが出てしまいました。

 Traceback (most recent call last): File "/usr/local/bin/pydbgpproxy", line 109, in import dbgp.serverBase ImportError: No module named dbgp.serverBase 

pythonのdbgpモジュールが無いようだったのでインストールします。 まずはsetuptoolsとpipをインストールします。

 $ sudo curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python $ sudo curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python 

つぎにpipからdbgpをインストールします。

 $ sudo pip install dbgp

今度は、起動できました。

 $ sudo pydbgpproxy -i 192.168.1.1:9002 -d 127.0.0.1:9001 

PhpStormの設定をする

Debugの設定をします。 xdebug.remote_portのポートを変更したので9001にします。 Xdebugのポートを変更 Serversの設定をします。 ここでリモートサーバー上のディレクトリパスを正しくマッピングする必要があります。 6 Debug Configurationsの設定をします。 5 DBGpプロキシの設定をします。 DBGp Proxyのコンフィグ DBGp Proxyの設定をします。 DBGp Proxyの設定

デバッグを開始する

上記の設定が全て終わったらデバッグを開始します。 IDEの登録を実行します。 IDEの登録 登録が成功するとリモートサーバ側に下記のようなメッセージが表示されます。

 INFO: dbgp.proxy: Server:onConnect ('192.168.1.3', 52833) [proxyinit -p 9001 -k nishida -m 1] 

最後にこの電話マークのボタンを押します。接続が成功すると電話のマークが緑に変わります。 8 これで変数の内容がPhpStormから参照できたり、ブレークポイントで停止したりするはずです。

  • このエントリーをはてなブックマークに追加

記事作成者の紹介

にしだ(システムエンジニア)

ECサイトやWEBアプリに加え、ソーシャルアプリの開発もやってます。

関連するSONICMOOVのサービス

システムエンジニア募集中!

×

SNSでも情報配信中!ぜひご登録ください。

×

SNSでも
情報配信中!
SONICMOOV Facebookページ SONICMOOV Twitter
Wantedly 採用情報はこちら

新着の記事

mautic is open source marketing automation