当我尝试从官方docs安装composer时,出现了这个:
Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:
The phar extension is missing.
Install it or recompile php without --disable-phar
The iconv OR mbstring extension is required and both are missing.
Install either of them or recompile php without --disable-iconv
我尝试使用
apt-get
安装 php-phar 和 php8.1-phar,但它似乎已被 php8.1-common 取代。
lvjhn@peridot:~/Temp$ sudo apt install php8.1-phar
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'php8.1-common' instead of 'php8.1-phar'
php8.1-common is already the newest version (8.1.11-1+ubuntu22.04.1+deb.sury.org+2).
编辑:我使用了错误的单词搜索而不是安装。
我正在使用
ondrej
存储库中的一个。
如何解决?谢谢你。
首先,您可以使用
php -m
检查启用的 php 模块,预计您不会在那里找到 phar。但此列表未显示未启用的模块/扩展。您可以通过检查扩展目录来检查是否安装了该扩展。您可以通过以下方式找到它的位置:
php -i | grep extension_dir
然后您可以通过将路径放入以下命令中轻松检查内部:
ls /path/to/extension_dir | grep phar
如果您看到 phar.so 结果 - 这意味着您已安装它并且应该在 php.ini 文件中启用它。 您可以通过运行
php --ini
检查正在使用哪个 php.ini 文件。
然后您应该使用您喜欢的任何编辑器编辑该文件(例如sudo nano /etc/php/8.1/cli/php.ini
)。这些扩展位于动态扩展部分。如果有一行 ;extension=phar
,您只需删除 ;
;如果不存在 - 只需手动添加:
extension=phar
然后保存文件。之后您可能需要重新启动 Web 服务器。 (
sudo systemctl restart apache2
,如果是 Apache)。您可以再次使用php -m
检查,这次您应该找到它了。
其他扩展也同样如此,如 mbstring、curl、fileinfo、tokenizer 等。