PHP: класс Phar не найден - PullRequest
       17

PHP: класс Phar не найден

23 голосов
/ 13 января 2012

Я пытаюсь использовать Silex Framework в качестве основы для своего веб-приложения. Однако, если я пытаюсь включить архив * .phar, PHP выдает следующую ошибку:

Fatal error: Class 'Phar' not found in /var/www/framework/silex.phar on line 11

Следующие соответствующие строки в моем /etc/php/php.ini (как указано в документации по Silex):

extension=phar.so
phar.readonly = Off
phar.require_hash = Off
detect_unicode = Off

Библиотека PHAR присутствует в /usr/lib/php/modules/phar.so, которая установлена ​​как путь расширения для всех библиотек в моем php.ini

Кто-нибудь знает, почему PHP выдает эту ошибку?

Ответы [ 6 ]

19 голосов
/ 11 февраля 2014

Это работает для меня:

php -d extension=phar.so composer.phar [... your command ...]

Включает расширение phar для текущего времени выполнения. Работает для общих / VPC-серверов.

17 голосов
/ 13 января 2012

Попробуйте указать путь к добавочному номеру :

php -d extension=phar.so composer.phar <your_script>

Другие варианты:

На основе предоставленной вами информациинесколько возможностей:

  • Вы используете другой php.ini.Проверьте вывод phpinfo() для подтверждения и убедитесь, что вы редактируете активный.

  • / usr / lib / php / modules / phar.so не читается.Убедитесь, что пользователь веб-сервера может прочитать этот файл.

  • Ваш веб-сервер не был перезапущен с тех пор, как вы в последний раз добавили информацию, связанную с phar, в php.ini.Перезагрузите веб-сервер.

0 голосов
/ 06 апреля 2017

Для пользователей Mageia 4, Mageia 5, Mageia 6

>> urpmi php-phar;echo done
To satisfy dependencies, the following packages are going to be installed:
  Package                        Version      Release       Arch
(medium "Core Release2")
  php-bz2                        5.6.30       2.mga6        x86_64
  php-phar                       5.6.30       2.mga6        x86_64
326KB of additional disk space will be used.
151KB of packages will be retrieved.
Proceed with the installation of the 2 packages? (Y/n) y


    $MIRRORLIST: media/core/release/php-bz2-5.6.30-2.mga6.x86_64.rpm
    $MIRRORLIST: media/core/release/php-phar-5.6.30-2.mga6.x86_64.rpm
installing php-phar-5.6.30-2.mga6.x86_64.rpm php-bz2-5.6.30-2.mga6.x86_64.rpm 
Preparing...                     ###############################################
      1/2: php-bz2               ###############################################
      2/2: php-phar              ###############################################
>> 
0 голосов
/ 10 ноября 2016

Надеюсь, что это может пролить свет.Я использовал общий хост и у меня были проблемы с запуском композитора.Я использовал эти сайты направления http://avantidevelopment.com/install-composer-on-bluehost/, чтобы настроить общий каталог и установить в нем композитор.Я последовал за этим, но добавил, что для своего псевдонима я добавил следующую команду в .bashrc

alias composer='/ramdisk/php/54/bin/php54-cli ~/common/composer.phar'

Это помогло мне.Надеюсь, кто бы ни наткнулся на это, зажигает лампочку.

0 голосов
/ 10 сентября 2015

в моей среде хостинга мне нужно было указать номер версии php.Например:

php-5.6 composer.phar

not

php composer.phar

0 голосов
/ 13 января 2012

Hm. Я думаю, вам нужно require_once 'phar://silex/silex.phar/autoload.php'; вместо require_once 'silex/silex.phar';. Если это не так, нам нужно увидеть код, выдающий ошибку.

...