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 时遇到了同样的问题。为了解决这些问题,您必须安装 xcode,因为需要unix 开发工具

让我们开始吧,你有两个问题:xdebug.solibltdl.3.dylib

首先找不到 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

前四行强制编译器生成 32 位二进制文​​件,因为 Zend Server 是 32 位二进制文​​件,而 OSX Lion 是 64 位操作系统。

好吧,现在你应该在 */usr/local/zend/lib/php_extensions* 上安装了xdebug.so,只要确保你的/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

塞巴斯蒂安伯格曼的 PHPUnit 3.6.6。

于 2012-01-02T16:31:36.503 回答