2013年04月06日

EclipseでXDebugが使えるようにPHP開発環境を整える

前回、XDebugをインストールしたサーバーに対してリモートデバッグを試してみる。

まずはEclipseでPHPが利用できるようにする。
プラグインはいくつかあるみたいだけど、PDTを選んでみた。

Install New Softwareから、Work withで、Junoを選択する。
phpでフィルタ→PDTを入れる
PHP Developent Tools(PDT) SDK Featureは入れない(入れると競合が起きる)

Window/Preferencesを選択し、PHP/Debugを開く。
ここはEclipse全体の設定。
Default Settings欄のPHP DebuggerをXDebugにする。
デフォルトでは、Zend DebuggerとXDebugがあるらしい。
Serverの右にある「PHP Servers...」をクリックして設定を行う。
デフォルトはlocalhostだけなので、新しいサーバーを追加。
Base URLにはXDebugをインストールしたサーバーのアドレスを追加。

適当にPHPプロジェクトとPHPを作成し、ブレークポイントを設定しておく。
phpファイルを右クリックしてDebug As/Debug Configurations...を選択。
デバッグの設定画面が表示される。
PHP Serverに、先ほど設定したサーバーを選択する。
Eclipseのリモートデバッグは、デフォルト設定だと、
Base URL/プロジェクト名/phpファイル名
というサーバーアドレスにあるファイルを対象とするらしい。
アドレスが正しいことを確認しておく。
Debuggerタグを開いて、Breakpoint欄にある「Break at First Line」は、
最初の行でブレークさせるかという設定。
ブレークポイントを設定せずに最初から順にステップ実行していくこともできるみたい。
ひとまずブレークポイントを設定してあるので、ここは何もしない。
Applyで設定を保存し、Deubugを実行。

…が、デバッグが動かない
eclipse web launch already running
と出て、57%くらいで止まってしまう。

調べてみた。
php - Launching waiting for xdebug session 57% - Stack Overflow
どうやらXDebugにリモート用の設定があるらしい。
設定内容は本家のサイトを確認する。
Xdebug: Documentation

php.iniにリモート用の設定を加える。

zend_extension = /usr/lib64/20100525/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_host = 接続したいアドレス
xdebug.remote_mode = req
xdebug.remote_port = 9000

ポートの記述があるため、ポートも開放する。
デフォルトで設定した9000番を開放する

でもやっぱりつながらない。
あれ?って思っていたが、SELinuxの設定がありそうなので、
Setenforce 0でいったんSELinuxを切る。
ブレークポイントで止まった!
ステップ実行もできる。

で、以前にやったSELinuxの手順を参考にしつつ、audit2allowでSELinuxの設定をする。
これでSELinuxを有効な状態でもXDebugが使えるようになった。

タグ:xdebug PDT Eclipse PHP
posted by mit at 23:07| Comment(1) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
victoria カード
Posted by クロックス at 2013年08月01日 15:06
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/354193863

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。