前回、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が使えるようになった。
2013年04月06日
この記事へのコメント
victoria カード
Posted by クロックス at 2013年08月01日 15:06
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/354193863
この記事へのトラックバック
http://blog.seesaa.jp/tb/354193863
この記事へのトラックバック