忍者ブログ

カウンター

プロモーション

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


  • 2024/04/20 01:06

zend_extension と zend_extension_ts そしてApache の設定・・でもよくわからない

Apache と PHP の調べ物

過去の私のブログ、xdebug やらZend Debugger を使う前の予備調べ にある
XDebug というデバッガーを動かすためのphp.ini の設定でずっと疑問に思っていた設定がある。

その設定項目は、
zend_extension
zend_extension_ts
の違いであった。

この違いの意味が何処に書いてあるのか今までわからなかった。

しかし公式サイトにしっかり書いてあったのでその事をメモしておく。

公式サイトには、
以下の4つが存在した。

--- --- php.ini に書くらしい、xdebug の設定(※なにやら環境によって違うので鵜呑みは危険!)  --- ---
zend_extension
string

動的読み込み可能な Zend 拡張モジュール (たとえば APD) を PHP の起動時に読み込む際の絶対パス。

zend_extension_debug string

zend_extension の亜種で、デバッグ情報つきでコンパイルされた拡張モジュール用のもの。

zend_extension_debug_ts string

zend_extension の亜種で、デバッグ情報つきかつスレッドセーフでコンパイルされた拡張モジュール用のもの。

zend_extension_ts string

zend_extension の亜種で、スレッドセーフでコンパイルされた拡張モジュール用のもの。
 --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---

デバッグ情報付きというのは、PHPをデバッグする為のものらしく、
PHPがデバッグ情報付きでコンパイルされているかどうかによって _debug とついた読み込みを
するかしないかを選ばなくては正確に動作しない様だ。

その情報を知るには、phpinfo関数を用い、その項目から、
 

Debug Build no
でデバッグでコンパイルされているかどうか調べ、
no でないならばデバッグなので _debug がついている物を使う。
(※よく考えたらコンパイルしたら変わることは無いと思われる)

そいて、 _ts についてもphpinfo関数を用い、その項目から、
Thread Safety enabled
でスレッドセーフが有効ものかどうか調がついている物を使う。
enabled ならば _ts が付いている物を使う。

Debug Build と Thread Safety によるextension 表(※多分間違っています!)
  Debug Build
 no  noじゃない(Yesとかon?)
Thread Safety
 
disabled  zend_extension  zend_extension_debug
enabled  zend_extension_ts  zend_extension_debug_ts

色々調べてみるとこんな感じになるのかと思った。

追加情報: ---------------------------
が!!!!!
これは間違えかもしれない!!!!
このページの下の方にありますが、phpinfo()のステータスでThread Safety はどうも
Apache との連携の事を指し示し、xdebug との連携の意味では無いのかもしれません。

そしてDebug Build もデバッグした時に決まってしまうのでしょうから、
後から変わることは多分ないでしょう。
--------------------------------


まず、ここまでの参考サイト:
Xdebug によるデバッグ環境の構築 - Web/DB プログラミング徹底解説

xdebug追加をphp.iniに記述するとき、
zend_extension=か zend_extension_ts=なのかを見極めるには。
: PHPの種 ブログ



なにか私のWindows 環境では、php.ini にxdebug の設定をすると説明どおりの設定では動かない件
 そしてココからが問題だ!
私の場合は、phpinfo()で調べると、
Debug Build no
Thread Safety enabled
であったので、その場合は、zend_extension_ts で良いと思ったのだが動かない!
不思議な事にThread Safety が無効(disabled) の
zend_extension でないと動かないのである。
このThread Safety の意味はなんなんだろうか?

追加情報: ---------------------------
 もう一度よく考えてみた。
現時点でWindows版のPHP のphpinfo関数 による
Thread Safety がenabled である表記はApache に対してのスレッドセーフの事を示していて、
xdebug の為の表記ではないと思われる。

 確認の為にあえてNo-Thread-Safe の
5.3 VC6 Non-thread-safe (32 bit) を使ってzend_extension_ts はもちろん、
zend_extension の設定を使ってみましたが、xdebug のがphpinfo関数でステータス一覧は
出てこなかったので、なぜか動かない状況でした。

もし何か良い情報があれば、気軽にコメントもらえると助かります。

私の動いてる環境は「zend_extension = の書式」 + 5.3 VC6 (32 bit) (Tread Safe) のDLL で
動作確認が取れています。

xdebug公式 ダウンロード:download/SVN
--------------------------------

一応スレッドセーフの関連はApache の動作をスレッドを用いる設定でも出てきた記憶があるので
こちらもどう動いているかなどの
参考URL
@IT:Apache 2.0の必須設定と基本セキュリティ対策(1/3)
 

             xdebug

xdebug support enabled
Version 2.1.0

Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.145 $
                                ・
                                ・
                          (各設定の値も続く)

ステータスでは上記のこんな感じの項目が現れたらステップ実行や、変数の値を知るなど
デバッグ機能が使える様になる。


尚、この文章は後ほど修正しているので、順番的におかしく読みにくい部分があるかもしれませんがご了承下さい^^;

拍手[0回]

PR


  • 2010/08/01 21:47

コメント一覧

  • お名前
  • Email

  • コメント

  • Vodafone絵文字 i-mode絵文字 Ezweb絵文字
  • パスワード
[PR]