2010年01月25日 02:01

不完全なEclipse PDT2.0のデバック設定

| TB http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/519

XAMPP1.6.8、PDT2.0でのPHPスクリプトのデバッグ設定について。 不完全であり、解決できない問題があり。

PHP実行ファイルの指定

ウィンドウ > 設定 > PHP > PHP実行ファイルの設定

から実行ファイルを設定します。

名前

色々なVerのPHPの実行ファイルを登録した場合に区別がつくようにします。適当でOK。 ここではPHP5とします。

実行可能ファイル・パス

実行ファイルとはPHPを実行するファイルです。そのままで説明になってませんが Windowsならexeファイルのことだと思ってればいいはずです。 なのでXAMPPの場合、XAMPP/php/php.exe を指定します。

PHP iniファイル (オプション)

基本apacheがロードするphp.iniを指定します。 サーバのphp.iniとデバッグ用のphp.iniを別にしたい場合は、 php_debug.iniとか作ってやればいいかと思います。

PHPデバッガー

利用するデバッガーを指定します。

php.iniの設定

XAMPPがロードするphp.iniはXAMPP/apache/bin/php.iniとなります。 下の方にある[Zend]の部分を探すと下記のようになっています。


[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

ZendExtensionManager.dll

PHPはバージョンごとに異なるモジュール?とかを読み込む必要があるのですが、 これを利用すると使っているverのモジュールを自動で読み込んでくれるっていうものです。 (どこかのページに書いてあったんですが失念しました。。。)


zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"

Zend Optimizer

これはPHPのパフォーマンスを向上させるためのツールだそうです。


zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"

このzend_extension_manager.optimizer_tsが設定されてるディレクトリを覗いてみます。

  • php-4.2.0
  • php-4.2.x
  • php-4.3.x
  • php-4.4.x
  • php-5.0.x
  • php-5.1.x
  • php-5.2.x

こんな感じでディレクトリがあり、中にZendOptimizer.dllが入ってます。 このディレクトリ名は重要です。 おそらくZendExtensionManagerがverによって自動で読みこむディレクトリ名だからです。

なのでZendDebuggerもこれと同じ命名規則でディレクトリを作成します。

ZendDebugger

ZendDebuggerがない場合、Index of /pdt/server-debuggerから取得します。

C:\xampp\php\zendOptimizer\lib\ZendDebuggerというディレクトリを作成して ダウンロードしたアーカイブ内のディレクトリをコピーします。そしてC:\xampp\php\zendOptimizer\lib\Optimizer以下と 同じようにリネームします。

5_2_x_comp -> php-5.2.x

そうしたらZendExtensionManagerがデバッガを読み込む設定をしてあげます。 下記を追記しましょう。


zend_extension_manager.debug_server_ts = "C:\xampp\php\zendOptimizer\lib\ZendDebugger"

基本的に上記の1行追加で問題ないようです。


[Zend]
zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
zend_extension_manager.debug_server_ts = "C:\xampp\php\zendOptimizer\lib\ZendDebugger"
zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:

以上の設定をして、apach再起動後、phpinfoをみると

のようになっていればOKです。

PHP スクリプトの実行構成

実行 > 実行構成 > PHP スクリプト

を新規作成してこんな感じで設定。

実行すると動くけど、$_SERVER[DOCUMENT_ROOT]が空になる・・・

これじゃ使えないので「PHP Webページ」の方を使ってるという無様な結果・・・

引数、環境タブで何かしら設定すればなんとかなりそうな気もするんですが 今のところどうにもなっていない・・・。

残ってる問題

php.iniの[Zend]の設定

この辺りの意味がまったく不明。


zend_optimizer.enable_loader = 0
zend_optimizer.optimization_level=15
zend_debugger.allow_hosts=127.0.0.1
zend_debugger.deny_hosts = all
zend_debugger.expose_remotely = always

PHPサイバーテロの技法―攻撃と防御の実際

著者 : GIJOE / 金額 : ¥ 1,890

不完全なEclipse PDT2.0のデバック設定タグ:

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/519
コメント (0)
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?


先月アクセスが多かったページ