Проблема с PHPUnit на Zend Server CE - MacOSX - PullRequest
0 голосов
/ 21 ноября 2011

Я установил Zend Server CE на моем MacOS Lion, и все работает без сбоев, кроме PHPUnit.

Моя установка PHPUnit была сделана из PERL, который поставляется с Zend Server CE.

Вот вывод, когда я запускаю 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

Кто-нибудь знает, в чем может быть проблема или проблемы?

Спасибо и всего наилучшего!

Ответы [ 2 ]

4 голосов
/ 23 ноября 2011

Хорошо, это мой первый ответ.Так что будьте спокойны со мной.

Сегодня вечером у меня были те же проблемы с Zend Server CE на OSX Lion.Чтобы решить их, вам нужно установить xcode, поскольку инструменты разработки unix необходимы.

Давайте начнем, у вас есть две проблемы: xdebug.so и libltdl.3.dylib

Первый xdebug.so не найден, для его установки необходимо выполнить следующую командустрока:

sudo su -

Он попросит вас ввести пароль (если у вас его нет, просто нажмите клавишу ввода).Затем:

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-разрядная операционная система.

Хорошо, теперь у вас должен быть 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).

1 голос
/ 02 января 2012

Я только что столкнулся с проблемой с mcrypt, когда попытался запустить phpunit.

Предупреждение не появляется, если вы запускаете phpunit с помощью sudo:)

sudo ./phpunit --version

PHPUnit 3.6.6 от Себастьяна Бергманна.

...