2014-11-03 3 views
0

На сервере RHEL я не могу запустить PhpUnit. Ниже приведены примеры, как корень, чтобы проиллюстрировать те шаги, которые я пытался установить PHPUnit и как он не работает:Не удается запустить Phar архивы

# wget https://phar.phpunit.de/phpunit.phar 
# chmod +x phpunit.phar 
# ./phpunit --version 

PHP Fatal error: require(): Failed opening required 'phar://phpunit-4.3.4.phar/phpunit/TextUI/Command.php' (include_path='.:') in /usr/local/bin/phpunit on line 592 
PHP Stack trace: 
PHP 1. {main}() /usr/local/bin/phpunit:0 
PHP 2. {closure}() /usr/local/bin/phpunit:0 

# mv phpunit.phar /usr/local/bin/phpunit 
# which phpunit 
/usr/local/bin/phpunit 

# phpunit --version 

PHP Fatal error: require(): Failed opening required 'phar://phpunit-4.3.4.phar/phpunit/TextUI/Command.php' (include_path='.:') in /usr/local/bin/phpunit on line 592 
PHP Stack trace: 
PHP 1. {main}() /usr/local/bin/phpunit:0 
PHP 2. {closure}() /usr/local/bin/phpunit:0 

кажется, что PHP задыхается от формата phar:// адреса, определенного на строке 13:

# cat /usr/local/bin/phpunit | awk 'NR==592' 
      require __PHPUNIT_PHAR_ROOT__ . $classes[$class]; 

# cat /usr/local/bin/phpunit | grep -n __PHPUNIT_PHAR_ROOT__ 
13:define('__PHPUNIT_PHAR_ROOT__', 'phar://phpunit-4.3.4.phar'); 
592:   require __PHPUNIT_PHAR_ROOT__ . $classes[$class]; 
601:  print file_get_contents(__PHPUNIT_PHAR_ROOT__ . '/manifest.txt'); 
20811:  if (defined('__PHPUNIT_PHAR_ROOT__')) { 
20812:   $prefix = __PHPUNIT_PHAR_ROOT__; 
26020:  copy(__PHPUNIT_PHAR_ROOT__ . '/ca.pem', $caFile); 

сервер является RHEL 6.5:

# uname -a 
Linux foobar 2.6.32-220.38.1.el6.x86_64 #1 SMP Wed May 15 08:34:56 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux 

# cat /etc/issue 
Red Hat Enterprise Linux Server release 6.5 (Santiago) 
Kernel \r on an \m 

ответ

0

решение было просто использовать PHPUnit от PEAR, который также не будет работать с этой ошибкой:

[[email protected] ~]# /usr/bin/phpunit 
PHP Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in /usr/share/pear/PHPUnit/ 
Autoload.php on line 64 
PHP Stack trace: 
PHP 1. {main}() /usr/bin/phpunit:0 
PHP 2. require() /usr/bin/phpunit:43 
PHP Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.:') in /usr/share/pear/PHPUni 
t/Autoload.php on line 64 
PHP Stack trace: 
PHP 1. {main}() /usr/bin/phpunit:0 
PHP 2. require() /usr/bin/phpunit:43   

Добавление следующей строки в /etc/php.ini решен вопрос для версии PEAR из PHPUnit:

include_path = ".:/usr/share/pear" 
Смежные вопросы