EclipseでPHPコードをXdebugで、デバッグしたい(けどできない!)

「なんで!」

となったときのチェックする順番について書いてみました。

環境

  • Windows7
  • Xampp
  • xdebug
  • Eclipse
  1. phpinfo() にXdebugが表示されているか?
    表示されていなかったら、php.iniで有効にすること(ポート番号も見ておこう)
    筆者の設定↓
    zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
    xdebug.remote_enable = 1
    xdebug.remote_host = "localhost"
    xdebug.remote_port="9000"

    xdebug php.ini
     
  2. xdebugはTCPで通信します。php.iniで設定しているポートが空いているかどうかチェック。デフォルトの9000番が環境によっては空いていないことがあるようです。素直にちょっとずらして9001とかでいけると思います。

    空いていなければ別のポート番号にします
    空いているかどうか調べるコマンドは netstat -nao
    Windowsで使用ポートを確認(外部サイト)
  3. Eclipseのxdebugのポート設定が2番のphp.iniで設定されているポートと同じかチェック
    Eclipse PHPデバッガー設定画面
  4. ファイヤーウォールなどで上記のポートがブロックされていないか調べる。
    閉じられていたらルールを作成する
    コントロールパネル>ファイヤーウォール>詳細設定
    windows7 ファイヤーウォール詳細設定

以上で何とかなると思います。

 

反省

ちなみに編集長は1のphp.iniでつまづいていました。php.iniがうまくいってるものと思い込んでいて、ポートの重複チェックばかりしていました。

php.ini設定は前にしっかり書いておいたので問題ない!と思っていたのは別の環境で、完全に思い込みでした。

というわけで、時間ロスをなくすためにも問題を検品するときのチェックの順番って重要だなと思い、このページを作りました。

なぜ、ポート重複からチェックしてしまったかというとググっででてきた上位何個のページが、「xdebugが動作しないのはポート重複指定」のコンテンツだったため、はなから自分の場合ものそれだと思い込んでしまっていたのですね。