$_SEVER[‘HTTP_HOST’] の値が取れていなくて、うへ~!ってなった。
どうしてどうして? となり、var_dump をしてみたら、確かに取れていない。
でも、よく見ると何か変・・・。
どうやら、デバッグだと挙動が変わる様子。
ブラウザからアクセスしたら、ちゃんと $_SEVER[‘HTTP_HOST’] の値を取れていた。
そういうことか~!
ってことは、デバッグ用のコードを追加しなきゃ・・・ね・・・
「親リソースにアクセスできません。」というエラーが出た。
Google 先生にあれこれ質問してみたけど、解決策は見つからず。
対処療法として、ワークスペースを新規に作成することで事なきを得た。
Google 先生に質問したところ、同じエラーを抱えている人はある程度いるみたい。
でも、ある日突然直ったっていうのがあるくらいで、他にはなし。
ワークスペースを新設することで、エラーはでなくなったので、
気持ちが悪いけど、対処療法として解決ということに。。。
インストールしたとき に、ワークスペースをゴニョゴニョしたのがいけなかったのかしらね~。
でも、Pleiades を入れ直しても、やっぱり直らなかったのだ。。。
前回とは違って、Pleiades に Xdebug が標準装備されたそうなので、リトライしてみる。
ただし、前回同様 Pleiades 同梱の XAMPP ではなくて、別途導入した XAMPP を利用。
前回記事
デバッグ XDebug 編
XDebug の導入
XDebug の導入の試行錯誤
の必要箇所をコメントアウトから復帰。
2085行目の値を 1 に。
※あちこちいじっているため、行番号は不確か。
私の場合は、単体 XAMPP を利用するのでちょいと設定が必要。
上記 [デバッグ] ダイアログで [PHP 実行可能ファイル…] というリンクからでもいける。
*1:SAPI タイプは、CLI 版か、CGI 版か、ということらしい。
下記コマンドにて確認できる。
必要に応じて
[ウィンドウ]-[設定]
[PHP]-[サーバー] からサーバーの追加。
Default PHP Web Server についても、Debugger の設定が必要。
[Default PHP Web Server] を選択
[編集]
[デバッガー] タブ
上記「PHP 実行可能ファイルの追加」の「Debugger Settings」参照
[完了]
追加後、改めて
[ウィンドウ]-[設定]
[PHP]-[デバッグ] から
先ほど追加したものを選択。
「最初の行でブレーク」のチェックを外す。
Eclipse では、上記 [PHP 実行可能ファイル] で php.ini の場所を設定したにも拘らず
include_path を上書きするらしく、設定しないと include_path が無視される。
そこで改めてプロジェクト毎にインクルードパスを設定してやる必要がある。
[プロジェクトを右クリック]-[インクルード・パス]-[インクルード・パスの構成]
[外部ソース・フォルダの追加] からインクルードしたいディレクトリを指定する。
XDebug の導入 には、起動構成について書いたけど
こちらで書くのを忘れてる。。。
基本的な進め方は、上記の前回記事を参照。
ただ、今回 Eclipse をアップデートしたせいか、前のやり方ではできなかった。
というか、バグってるかも?
なので、ファイル欄は、手動で設定。
/(スラッシュ)で始めて、プロジェクトルートから index.php までのフルパスを入力。
例)/projectA/web/index.php
実行時に読みにいくファイル、大概は index.php でしょう。
このコンテキストメニューから
[デバッグ]-[PHP Web アプリケーション]
これで、新規起動構成を自動生成して
ダイアログを開いてくれる。
便利!
stack overflow:Debug PHP on Eclipse MARS with XDebug: error: file does not exist
止めたい行番号をダブルクリックすることで、ブレークポイントの OnOff をできる。
ツールバーの虫(Bug)ボタンをクリックすればデバッグ開始。
[PHP CLI アプリケーション] を選択してやると、
[説明] 欄に「Debug PHP Executable」と表示されるので
[OK] 。
そういえば、昔、こんな記事を書いた記憶が。。。
今になってみれば
PHP CLI アプリケーション:コマンドラインで動かす
PHP Web アプリケーション:Web サイト
なので、[PHP Web アプリケーション] を選択するべきだった、とは思えるけど
それでも、よくわかっていない。
コマンドラインで動かす PHP って、どんなのだろう。。。
上記設定を全部済ませたのに、デバッグを開始しても
デバッグパースペクティブのデバッグタブに何も現れない。
ブレークポイントも効かない。
サイトの表示はされる。
ただし、URL に XDEBUG_SESSION_START というパラメータが付いていない。
悩んでみたけど、設定を確認して戻ってくると
ちゃんとデバッグできた。
こんなこともあるのね~。
初回ブレークポイント使用時にパースペクティブの切り替え確認ダイアログが出るので
[常にこの設定を使用する] にチェックを入れて [はい] 。
Web 制作・運用 Tips アーカイブ:Eclipse+XdebugによるPHPのデバッグ方法