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

Я пытаюсь использовать базу Silex как базу для своего веб-приложения. Однако, если я пытаюсь включить архив * .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 бросает эту ошибку?

Попробуйте указать путь к расширению :

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

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

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

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

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

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

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

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

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

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

в моей среде хостинга мне нужно было указать номер версии php. НАПРИМЕР:

php-5.6 composer.phar

не

php composer.phar

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

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

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

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

 >> urpmi php-phar; эхо сделано
 Для удовлетворения зависимостей будут установлены следующие пакеты:
   Версия выпуска версии пакета
 (средний «Core Release2»)
   php-bz2 5.6.30 2.mga6 x86_64
   php-phar 5.6.30 2.mga6 x86_64
 Будет использовано 326 Кбайт дополнительного дискового пространства.
 Будет загружено 151 КБ пакетов.
 Продолжить установку 2 пакетов?  (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
 установка php-phar-5.6.30-2.mga6.x86_64.rpm php-bz2-5.6.30-2.mga6.x86_64.rpm 
 Подготовка ... ######################################################## #
       1/2: php-bz2 ############################################# ####
       2/2: php-phar ############################################# ####
 >>