如何在Ubuntu上安装Phar?

时间:2018-07-21 15:14:15

标签: php ubuntu composer-php phar

我遇到一种情况,如果我在我的PHP项目上运行composer install,则会出现此错误:

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

在阅读composer update class phar not found时,我尝试通过执行php -i | grep 'phar'检查是否安装了Phar,而未安装Phar。

我正在使用PHP 5.6。

如何在Ubuntu上安装Phar?

[EDIT]当我尝试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.

3 个答案:

答案 0 :(得分:1)

您必须首先使用以下命令安装扩展程序:

apt install php-phar

通常,它应该自动注册该扩展名,并且可以正常工作。

答案 1 :(得分:1)

尝试运行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文件,则只需在主php.ini中包括正确的ini并将路径设置为phar.so个文件即可。

或者如果找到phar.so文件,只需使用

将其添加到您的主php.ini中

extension=phar.so

extension=path/to/your/phar.so

更新+额外内容以确保扩展目录位置

如果您掌握安装所使用的ini文件位置和ext目录,将会更加清楚。

尝试执行以下操作: 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

要检查主ini文件中与phar相关的参数。

如果这些步骤没有显示任何内容,那么我认为,只要在计算机上重新安装php软件包,就会更简单。

答案 2 :(得分:0)

如果php5无法识别phar.so lib,请尝试更新至7.x

phar库自动包含在较新的软件包中,并且也会被自动配置。希望能帮上忙