我遇到一种情况,如果我在我的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.
答案 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库自动包含在较新的软件包中,并且也会被自动配置。希望能帮上忙