FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Eclipse Indigo + PDT + Xdebug で CakePHP のデバッグ

とりあえず、CentOS上のWEBサーバーと同じマシン内のEclipseで、CakePHPをデバッグしたい。
そのための設定をメモしておく。

ちなみに環境は以下のとおり。
OS:CentOS 5.6
Eclipse:Indigo 20110615(日本語化していない)
PHP:Version 5.3.3
Xdebug:2.1.1





Eclipse のサイトに逝ってみたところ、PHP用のパッケージが見当たらなかった。

ダウンロードページの下部に次のようなリンクがあった。
Looking for the Eclipse for PHP Developers Package?

このリンクの先には、次のような説明があった。

Due to lack of a package maintainer for the Indigo release there will be no PHP (PDT) package. If you would like to install PDT into your Eclipse installtion you can do so by using the Install New Software feature from the Help Menu and installing the PHP Development Tools (PDT) SDK Feature from the Eclipse Indigo Repo >> http://download.eclipse.org/releases/indigo

つまり、"Install New Software" メニューから追加しなさい、ということだ。

なので、以下の手順により、PDTを追加インストールできる。

●Eclipse Indigo に PDT を入れる

1. [Help] --- [Install New Software] を選択
2. [Work with] 覧の右の[Add]ボタンを押下。
3. [Location]覧に http://download.eclipse.org/releases/indigo を入力し、
  [Name]覧に適当な名前を入れてOKする。
4. インストール可能なプラグイン?の一覧が表示されるので、[Programming Languages]のツリーを
  開いて[PHP Development Tools(PDT) SDK Feature]をチェックする。
5. 後はそのまま[Next]ボタンを押して行けば自動的にインストールされる。



●Eclipse + PDT で Xdebug を使えるようにする

PDTを入れただけでは、interactive debug(ソースコードデバッグ?)はできない。
(ただ、PDTの設定画面を見ると "Installed Debugger" 覧に XDebugやZend Debuggerの名前が既に並んでいる。
ひょっとすると、下記の手順を行わずともデバッグできるのかもしれない)


デバッグエンジン?を別途入れる必要があるらしい。
ZendDebugger か Xdebug のいずれかを入れられるようだが、Xdebugの方が良さそうなので、Xdebugを入れることにする。

1. Xdebugをダウンロードする。
 こちら http://www.xdebug.org/download.php からダウンロードする。
 Windows版は既にバイナリが用意されているが、Linux用はソースコードからコンパイルする必要がある。
 とりあえず、現時点での最新版である、Xdebug 2.1.1 のソースコードをダウンロードする。

2. Xdebugをコンパイルする。
 コンパイル方法は Xdebug公式サイトであるこちら http://www.xdebug.org/docs/install に書かれている。

 手順だけ抜き出すと以下のようになる。
 (面倒だったのであらかじめrootになってから操作している)
 (1) ダウンロードした書庫ファイルを適当な場所に解凍する。
   #tar -xzf xdebug-2.1.1.tgz
 (2) カレントディレクトリ変更。(必要ならディレクトリ名も変更したり移動したりしておく)
   #cd xdebug-2.1.1
 (3) 以下の各コマンドをそれぞれ実行する。
   #phpize
   #./configure --enable-xdebug
   #make
   #make install
 この状態で、ファイル xdebug-2.1.1/modules/xdebug.so が出来ているはず。
 私の環境では /usr/lib/php/modules に出来ていた。


3.PHPの設定を行う。

 (1) php.iniファイル内に以下の2行を追加。
   zend_extension="/hogehoge/xdebug.so"
   xdebug.remote_enable=1
   ※追加する場所はどこが良いのか、情報が見当たらなかったので、他の extension を記述した個所のすぐ下に追加した。
   ※2行目は、リモートデバッグの予定がなければ、追加しなくてもOK。
   ※hogehogeの部分は、上記で出来上がった xdebug.so のディレクトリ名にする。
 (2) apacheを再起動する
 (3) PHPで phpinfo(); してみて、画面の下の方に Xdebug が "enabled" となっている旨の
   表記があればOK。

 ※言うまでもないかもしれないが、apache(つまりPHP)を再起動しておく。

4.PDTの設定を行う。

 (1) [Window]---[Preferences] メニューを選択。
 (2) 画面左側ツリーの[PHP]---[Debug]を選択。
 (3) [PHP Debugger]覧で[XDebug]を選択。
 (4) 画面左側ツリーの[PHP]---[PHP Executables]を選択し、[Add]ボタンを押下。
 (5) [Name]覧には適当な名前を(例えば"PHP5.3"など)入れる。
   [Executable paht]覧には PHP の実行モジュールのフルパスを入れる。
   ※私の環境では、/usr/bin/php が実行モジュールのフルパスであった。
   [PHP ini file]覧には php.ini のフルパスを入れる。(入れなくても可?)
   ※私の環境では /etc/php.ini がフルパスであった。

5.デバッグ開始してみる。

 (1) 適当なPHPプロジェクトを作り、任意の行にブレークポイントを置く。
 (2) デバッグ対象のファイルを右クリックし[Debug As]---[Debug Configurations]を選択。
 (3) 画面下の方に隠れてしまっている[URL]覧に、WEBブラウザから見た時に相当するURLを入れる。
 (4) デバッグ対象のファイルを右クリックし[Debug As]---[PHP Web Page]を選択。
 これでデバッグモードでの実行が開始される。






●ブレークポイントが効かない

と、ここまで書いたが、今のところ CakePHP のプロジェクトをデバッグできない。
こちらの方と同様、ブレークポイントで止まらないのだ。
http://mileage-techno.cocolog-nifty.com/blog/2011/03/cakephp-on-ecli.html

CakePHPでない、単なるPHPのファイルをひとつ置いたプロジェクトではブレークポイントが効く。


最終的にブレークポイントが効くようになったのだが、原因がよく分らん。
可能性としては…

1. Eclipseでプロジェクトを作る時、CakePHPの app ディレクトリを指定してしまっていた?
 appディレクトリの親ディレクトリのレベルで指定する必要がありそうだ。
 一旦プロジェクトを破棄して、作り直したらうまくいったような気もするのだ。

2.PHPソースファイルの右クリックメニュー[Debug As][Debug Configuration]の設定を一旦全て
 削除してクリーンにしてみる必要があるかもしれない。
 一度デバッグ起動すると、その設定が上記画面に残るのだが、それをクリーンしてみたら
 うまくいったような気もするのだ。

このぐらいしか変更点が思い当たらない。









ああ、それにしてもめんどくさい…
早いところコードが書きたいのに、環境構築だけでものすごく消耗するぞ。


スポンサーサイト
コメント
コメントの投稿
管理者にだけ表示を許可する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。