Xdebugはロードされますが、zend拡張機能としてロードされません。どういう意味ですか?この問題を解決する方法は?
このエラーは、「extension =」を使用してXdebugをロードしたことを意味します。これは、通常のphp.ini、または一部のディストリビューションが追加したいxdebug.iniというファイルにある可能性があります。いずれの場合も、Xdebugは、シングルステップデバッグなどの特定の機能のZend拡張機能としてロードする必要があります。 Xdebugは通常の拡張機能として機能することを意図していないため、クラッシュして焼ける可能性もあります。
XdebugをZend拡張機能としてロードするための構文は、PHPバージョンとビルドによって異なります。 http://xdebug.org/wizard.php を使用して提供することをお勧めします。正しい行で。
zend_extension
として正しくロードされるように構成されているかどうかを確認してください。 php.ini
内にこの行を追加します
zend_extension="/usr/local/php/modules/xdebug.so"
Windowsサーバーでzend*nts*.dll
ファイルをphp.ini
ファイルにアクティブ化する場合は、zend_extension_ts
の代わりにzend_extension
ディレクティブを使用する必要があります。
xdebugをロードする例:
[XDeug]
zend_extension_ts="DRIVE:/PATH_TO_XDEBUG/php_xdebug.dll"
xdebug.show_local_vars=1
xdebug.default_enable=On
注:dllファイルへの二重引用符
それが誰かを助けることを願っています:)
XdebugがZend拡張機能としてではなく通常のPHPモジュールとしてロードされているためです。Derickがリンクしている wizard を使用できます。または、Starxが示したように手動で行を入力します。
ただし、発生する可能性のある問題があります。 extensions_dir
のphp.ini
ディレクティブは、現在PHPモジュール、 Zend拡張機能には適用されません にのみ適用されます。したがって、次のような一般的な構成を使用することはできません。この:
[PHP]
extension_dir = .\ext
extension = php_memcache.dll
…
[zend]
zend_extension = php_xdebug-2.2.3-5.3-vc9-nts.dll
PHPはext
サブディレクトリからphp_memcache.dll
を正しくロードしますが、ではありませんphp_xdebug-2.2.3-5.3-vc9-nts.dll
をロードすると、エラーFailed loading php_xdebug-2.2.3-5.3-vc9-nts.dll
がスローされます。
これを修正するには、次のような完全修飾/絶対パスを使用する必要があります。
zend_extension = C:\foobar\PHP\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll
または次のような相対パス:
zend_extension = ext\php_xdebug-2.2.3-5.3-vc9-nts.dll
zend_extension = ..\phpexts\php_xdebug-2.2.3-5.3-vc9-nts.dll
zend_extension = \dev\phpexts\php_xdebug-2.2.3-5.3-vc9-nts.dll
(ウィザードはzend_extension=.\ext\php_xdebug-2.2.3-5.3-vc9-nts.dll
を返します。これには、ディレクトリだけでなく、余分な.\
も含まれます)
build xdebugを実行しようとしているときにここに到達した場合は、それを「静的」拡張機能(zend拡張機能ではない)として構築したことを意味します。
configure --with-xdebug=shared
を使用して共有拡張機能としてビルドできます(dll/so; xdebugが静的拡張機能ではなく共有拡張機能としてビルドされるように構成されていることを示す表が表示されます)。その後のzend拡張。
静的なzend拡張機能を作成できるかどうかはわかりません。
また、xdebugの完全なテストスイートを実行するには、opcache(configure --disable-opcache --with-xdebug=shared
)をアクティブ化しない必要があることに注意してください。