PHP - внешний класс / библиотека доступна из apache, но не из phpunit - PullRequest
2 голосов
/ 11 февраля 2012

Я использую библиотеку сокетов ZeroMQ в своем веб-приложении. Я настроил php.ini, чтобы Apache мог использовать ZMQ, но я не знаю, как phpunit может его использовать.

Разве phpunit не использует тот же php.ini, который использует apache?

В phpunit я получаю следующую ошибку.

PHP Fatal error: Class 'ZMQContext' not found in /home/idlecool/checker/testcases/checkerTest.php on line 53

1 Ответ

3 голосов
/ 11 февраля 2012

Какой php.ini файл используется для Apache, и командная строка обычно зависит от вашего дистрибутива Linux; если вы используете Debian или Ubuntu, у вас, как правило, будет:

  • /etc/php5/apache2/php.ini для Apache
  • и /etc/php5/cli/php.ini для командной строки - и PHPUnit запускается как приложение командной строки.


Но обратите внимание, что довольно часто (по умолчанию это верно в Ubuntu) , все файлы .ini из каталога /etc/php5/conf.d/ будут загружаться в режимах Apache и CLI.

Это означает, что, если вы хотите, чтобы расширение загружалось в обоих режимах, вы должны создать файл .ini в этом каталоге, загружая и конфигурируя его.


Например, у вас может быть файл /etc/php5/conf.d/zmq.ini, содержащий что-то вроде:

extension=zmq.so

(конечно, вам нужно будет указать название правильного .so файла)

...