Ecipse PDT 3.5 + xampp + xdebug を使った PHP デバッグ

たまに WordPress の不具合などでご質問をうけるも、初見のプラグインとかもすぐ直しちゃって「なんでそんなにすぐ分かるの?」と聞かれることありますが、タネを明かせばプログラムのおかしそうなところにデバッグブレイクひっかけて動作を見ているからです。 え?この軟弱もの? いいのいいの(笑)

プログラミングの難しい部分の一つは動作が一瞬で終わることにあると思います。 普通は机上というか頭の中で考えて、ここの if はこーだから、ここに入って、値はこーなるはず、、なんてやるわけですが、面倒なときはコンピュータに評価させた様子を1行ずつみていく。 これがデバッガの役目です。

てなわけで、現在の xampp 最新版 1.7.3 と Eclipse PDT を使ったデバッガの設定方法の紹介です。 前書いたのは設定方法が古くなってしまっていますが、とりあえず操作方法などもあるので併せてどうぞ。 🙂

hiromasa.docs o) – Eclipse PDT + XAMPP で WordPress の開発環境をつくる (3)

Eclipse PDT と XAMPP に入っている xdebug モジュールを利用すると、実行中のプログラムを任意の位置で停止させ、ソースコードとあわせて1行ずつ動作させるステップ実行や、変数の値の監視や書き換えが行えるウォッチなどのいわゆるデバッグ機能を使うことができるようになります。

まず、xampp の PHP に xdebug というモジュールを読ませる必要があります。 現在の xampp-1.7.3 のベーシックパッケージ(lite版には入ってないようです)には xdebug が同梱されているようです。 キウイ!

昔、Vista で xdebug 動作させると Apache ごとおちるという問題がありました。 今回は Windows 7 と xdebug-2.0.6 でやっていますが大丈夫そうです。

というわけで、php.ini にそれを読ませる設定をしてあげます。

C:\Develop\xampp-win32-1.7.3\php\php.ini

xampp インストールディレクトリの php\php.ini を開きまして、

zend_extension = "C:\Develop\xampp-win32-1.7.3\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1

zend_extention の php_xdebug.dll のコメントを解除。 xdebug.remote_enable = 0 の行があるので、コメントを解除した上で 0 を 1 にします。

これで、準備完了。 Apache を xampp コントロールパネルから再起動して phpinfo をみて xdebug があればOKです。

xdebug01

次は Eclipse PDT の設定。

WordPress などの PHP プロジェクトを開いた上で、実行 –> デバッグの構成。

xdebug05

左ペイン、PHP Web ページを選択し、ペイン上アイコンで新規作成。 で、ここがポイント。

xdebug04

ファイルと書いてあるところに、WP の index.php を指定。 そして、URL の部分をそのファイルをブラウザでみたときの URL と完全一致させます。 デフォルト localhost になっていますが、もしブラウザ http://127.0.0.1/ でアクセスしているときは、PHP Server 欄の構成で localhost を 127.0.0.1 に変更してください。

実ファイルの場所と、ブラウザでの URL の対応を完全に設定するところがキモです。 あっていないとブレイクしてくれません。

でもってできたら、ウインドウ->ビュー->その他 あたりから「デバッグ」というビューを表示しておきます。 デバッグ中であるとここにデバッグスレッドの様子がでますので、開始、停止ができます。

xdebug03

準備ができたら、ソースコードのブレイクしたい位置にブレイクポイントをはります。 詳しくは前述の昔の記事をみてみてください。 で、実行構成からデバッグボタンをおせばブレイクするハズです。

xdebug02

あとは、F5、F6、F8 での行すすめや、ウォッチでの変数閲覧などをたのしんでいただければ。 🙂

管理画面などのプログラムなどログインを伴うときは、セッションの関係でうまくブレイクできないときがあります。 このときは以下の記事を参考に URL をいじってデバッグセッションつけてあげてください。

hiromasa.another o)» Blog Archive » wp-jrelated 1.52 リリース (関連取得不具合修正)

動きしか見てないですが、たぶん WP の認証によりデバッグセッションの cookie がきえてしまうのがとまらない原因です。 なので GET でつけてあげて再設定すればこの後は何もしなくてもとまるようになります。 :-)

この辺 Java のリモートデバッガに比べればおもちゃっぽい部分もありますが、それでも十分実用になっていると思います。

というわけで、

power source » WP ローカル環境の構築 – XAMPP+Eclipse PDT

今回インストールした XAMPP Windows版 1.7.3 には Xdebug 2.0.6-dev が入ってるので、このまま使えそう。。?

たぶん、いけそう! 🙂

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

Ecipse PDT 3.5 + xampp + xdebug を使った PHP デバッグ” への4件のコメント

  1. おおおー!
    「F5、F6、F8 での行すすめや、ウォッチでの変数閲覧」
    WordCamp Tokyoでやってたの見て、すごく憧れてたのです~~。(*’-‘*)
    教えに従ってやってみます!

  2. ピンバック: とっても! ちゅどん(雑記帳) » Blog Archive » hiromasa.another :o)» Blog Archive » Ecipse PDT 3.5 + xampp + xdebug を使った PHP デバッグ

  3. N品ブランドスーパーコピー通販専門店
    ルイヴィトン、シャネル、グッチ、
    ロレックス、バレンシアガ、エルメス、
    コーチ、ブラダ、クロエ大激売中
    ブランド腕時計、バッグ、財布、小物専売店

    ◆主要取扱商品 バッグ、財布、腕時計、ベルト!
    ◆全国送料一律無料
    ◆信用第一、良い品質、低価格は 私達の勝ち残りの切り札です。
    ◆当社の商品は絶対の自信が御座います。
    おすすめ人気ブランド腕時計, 最高等級時計大量入荷!
    ◆N品質シリアル付きも有り 付属品完備!
    ◆新品種類がそろっています。 品質がよい、価格が低い、実物写真!

    営業時間:年中無休
    ホームページ上でのご注文は24時間受け付けております
    n級品ブランド http://www.giginza.com

  4. コピー業界取扱ブランド腕時計最大級激安通販!
    ルイヴィトンバッグ、エルメスコピー、腕時計ブランドコピー 時計ブランドコピー 腕時計コピー コピー時計 通販は腕時計ブランドコピーN品専売店です。
    最高品質のブランドコピー腕時計を取扱っています。
    ブランドコピーバッグ、など全て新品商品になります。
    ★迅速、確実にお客様の手元にお届け致します。
    ★実物写真、付属品を完備しております。
    ★低価格を提供すると共に、品質を絶対保証しております。
    ★商品の交換と返品ができます。
    ブランドコピーバッグの誠実と信用の店、
    24時間以内に出荷し、3~4日に到着して、
    ロレックス時計 http://www.gooshop001.com

コメントを残す

メールアドレスが公開されることはありません。