0

MacOS Lion に Zend Server CE をインストールしましたが、PHPUnit 以外はすべてスムーズに動作しています。

私がインストールした PHPUnit は、Zend Server CE に付属の PERL から作成されました。

コンソールからphpunitを実行したときの出力は次のとおりです。

Failed loading ”/usr/local/zend/lib/php_extensions/xdebug.so”:      dlopen(”/usr/local/zend/lib/php_extensions/xdebug.so”, 9): image not found
PHP Warning:  PHP Startup: Unable to load dynamic library     '/usr/local/zend/lib/php_extensions/mcrypt.so' -     dlopen(/usr/local/zend/lib/php_extensions/mcrypt.so, 9): Library not loaded:     /usr/lib/libltdl.3.dylib
  Referenced from: /usr/local/zend/lib/php_extensions/mcrypt.so
  Reason: image not found in Unknown on line 0
PHP Warning:  Xdebug MUST be loaded as a Zend extension in Unknown on line 0
PHP Fatal error:  Call to undefined method PHP_CodeCoverage_Filter::getInstance() in     /usr/local/bin/phpunit on line 39
PHP Stack trace:
PHP   1. {main}() /usr/local/bin/phpunit:0

問題が何であるかを誰かが知っていますか?

よろしくお願いします!

4

2 に答える 2

4

わかりました、これが私の最初の答えです。だから私に気楽に行ってください。

今夜、OSX Lion の Zend Server CE でまったく同じ問題が発生しました。それらを解決するには、 UNIX 開発ツールが必要なため、xcode をインストールする必要があります。

始めましょう。xdebug.solibltdl.3.dylibの 2 つの問題があります。

まず xdebug.soが見つかりません。インストールするには、コマンド ラインから次のコマンドを実行する必要があります。

sudo su -

パスワードの入力を求められます (パスワードをお持ちでない場合は、Enter キーを押してください)。それで:

export CFLAGS="-arch i386 $CFLAGS"
export CCFLAGS="-arch i386 $CCFLAGS"
export CXXFLAGS="-arch i386 $CXXFLAGS"
export LDFLAGS="-arch i386 $LDFLAGS"
/usr/local/zend/bin/pear config-set php_ini /usr/local/zend/etc/php.ini
/usr/local/zend/bin/pecl install xdebug

Zend Server は 32 ビット バイナリであり、OSX Lion は 64 ビット オペレーティング システムであるため、最初の 4 行は、コンパイラに 32 ビット バイナリを生成するよう強制します。

さて、xdebug.so が */usr/local/zend/lib/php_extensions* にインストールされているはずです。/usr/local/zend/etc/php.iniファイルが xdebug を次の行でロードしていることを確認してください。他の拡張機能と[zend]セクションの前:

zend_extension=/usr/local/zend/lib/php_extensions/xdebug.so

これが私のphp.iniのフラグメントです:

...
;extension=odbc.so
;extension=imagick.so
zend_extension=/usr/local/zend/lib/php_extensions/xdebug.so

[zend]
zend_extension=/usr/local/zend/lib/ZendExtensionManager.so
...

手動で追加しない場合は、 php.iniファイルに次の行が含まれているかどうかを確認し、xdebug を Zend 拡張機能としてロードする必要があるため削除してください。

extension=xdebug.so

次にxcode をインストールするとすぐに libltdl.dylib/usr/libで利用できるようになるため、次のコマンドでシンボリック リンクを作成できます。

sudo ln -s /usr/lib/libltdl.dylib /usr/lib/libltdl.3.dylib

次に phpunit を実行すると、すべてがスムーズに進むはずです (ただし、mcrypt 関数はテストしていません)。

于 2011-11-23T04:43:15.847 に答える
1

phpunit を起動しようとしたときに、mcrypt で問題が発生しました。

sudo で phpunit を実行すると、警告は表示されません:)

sudo ./phpunit --version

Sebastian Bergmann による PHPUnit 3.6.6。

于 2012-01-02T16:31:36.503 に答える