Как установить Phar на Ubuntu?


Я попал в ситуацию, когда, если я запускаю composer install в своем PHP-проекте, я получаю эту ошибку:

Fatal error: Class 'Phar' not found in /usr/local/bin/composer on line 23

Когда я прочитал класс обновления композитора phar не найден, я попытался проверить, был ли установлен Phar, выполнив php -i | grep 'phar', и Phar не установлен.

Я использую PHP 5.6.

Как я могу установить Phar на Ubuntu, пожалуйста?

[РЕДАКТИРОВАТЬ] Когда я пытаюсь apt-get install php-phar, я получаю:

Package php-phar is a virtual package provided by:
  php7.2-common 7.2.7-1+ubuntu14.04.1+deb.sury.org+1
  php7.1-common 7.1.19-1+ubuntu14.04.1+deb.sury.org+1
  php5.6-common 5.6.36-1+ubuntu14.04.1+deb.sury.org+1
  php7.0-common 7.0.30-1+ubuntu14.04.1+deb.sury.org+1
You should explicitly select one to install.

Тогда, если я попытаюсь apt-get install php5.6-common:

php5.6-common is already the newest version.
php5.6-common set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 295 not upgraded.
Author: Arnaud, 2018-07-21

2 answers

Попробуйте запустить php -i|grep phar

Если он показывает результат примерно так:

/etc/php/{version}/cli/conf.d/20-phar.ini,
Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, zip
Phar-based phar archives => enabled
Tar-based phar archives => enabled
ZIP-based phar archives => enabled
phar.cache_list => no value => no value
phar.readonly => On => On
phar.require_hash => On => On

Все должно быть правильно установлено.

Если он не показывает результата или файлы phar ini не упомянуты/отключены, вам просто нужно включить правильный ini в ваш основной php.ini и указать путь к файлам phar.so.

Или если вы найдете phar.so файл просто добавьте его в свой основной php.ini с помощью

extension=phar.so

Или

extension=path/to/your/phar.so

Обновление +дополнительно для обеспечения дополнительного расположение режиссера

Будет понятнее, если вы поймете расположение файла ini и внешний каталог, используемые вашей установкой.

Попробуйте сделать это: php -i | grep ini

Затем в первой/второй строке будет ваш основной ini-файл.

В моей машине это показывает следующее: Loaded Configuration File => /etc/php/{version}/cli/php.ini

Затем выполните эту команду, чтобы убедиться, что используется папка ext или любое расширение, объявленное в главном ini: cat /etc/php/{version}/cli/php.ini|grep ext

Вы также можете сделать:

cat /etc/php/{version}/cli/php.ini|grep phar

Для проверки параметра, связанного с phar, в главном ini файл.

Если эти шаги ничего не показывают, я думаю, что будет проще, если вы просто переустановите свой пакет php на своем компьютере.

 1
Author: Charis, 2018-07-22 13:06:53

Сначала необходимо установить расширение с помощью:

apt install php-phar

Обычно он должен автоматически регистрировать расширение, и оно должно работать.

 1
Author: Stony, 2018-07-21 15:16:25