KANTENNA.COM

Solarized

HOME > 情報備忘録 > 不完全なEclipse PDT2.0のデバック設定

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

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]の部分を探すと下記のようになっています。

XAMPP/apache/bin/php.ini
  1.  [Zend]
  2.  zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
  3.  zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
  4.  zend_optimizer.enable_loader = 0
  5.  zend_optimizer.optimization_level=15
  6.  ;zend_optimizer.license_path =
  7.  ; Local Variables:
  8.  ; tab-width: 4
  9.  ; End:

ZendExtensionManager.dll

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

XAMPP/apache/bin/php.ini
  1.  zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"

Zend Optimizer

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

XAMPP/apache/bin/php.ini
  1.  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がデバッガを読み込む設定をしてあげます。 下記を追記しましょう。

XAMPP/apache/bin/php.ini
  1.  zend_extension_manager.debug_server_ts = "C:\xampp\php\zendOptimizer\lib\ZendDebugger"

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

XAMPP/apache/bin/php.ini
  1.  [Zend]
  2.  zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
  3.  zend_extension_manager.optimizer_ts = "C:\xampp\php\zendOptimizer\lib\Optimizer"
  4.  zend_extension_manager.debug_server_ts = "C:\xampp\php\zendOptimizer\lib\ZendDebugger"
  5.  zend_optimizer.enable_loader = 0
  6.  zend_optimizer.optimization_level=15
  7.  ;zend_optimizer.license_path =
  8.  ; Local Variables:
  9.  ; tab-width: 4
  10.  ; End:

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

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

PHP スクリプトの実行構成

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

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

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

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

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

残ってる問題

php.iniの[Zend]の設定

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

XAMPP/apache/bin/php.ini
  1.  zend_optimizer.enable_loader = 0
  2.  zend_optimizer.optimization_level=15
  3.  zend_debugger.allow_hosts=127.0.0.1
  4.  zend_debugger.deny_hosts = all
  5.  zend_debugger.expose_remotely = always
プログラミングPHP 第2版
作者:Peter MacIntyre | 価格:¥ 3,990

トラックバック(3)

2011年9月 9日 02:11

Eclipse スニペット情報備忘録

Eclipseで良く使うコードをエディタに登録しておくことで、コピペが楽になるスニペットを利用する。続きを読む

2011年12月18日 03:45

Eclipseのワークスペース移行メモ情報備忘録

EclipseのキーバインドのCSVエクスポートが超優秀なトラップな件続きを読む

2011年12月19日 01:51

Eclipseで関連付けされていないファイルを開く手順情報備忘録

Eclipseで関連付けされていないファイルを開く手順続きを読む

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。