Composer在php v7.4和ubuntu 22.04上出现本地错误

tquggr8v  于 2022-09-20  发布在  PHP
关注(0)|答案(2)|浏览(306)

我这里出了点小问题。

我使用Ubuntu 22.04,在本地使用php 8.1和Composer 2.2.6,一切运行良好,但现在我有一个需要php 7.4的项目,所以我安装了php v7.4,并将其更改为我的系统的全局版本。

现在的问题是,它找不到 composer 。

当我运行Composer、Composer Install、Composer-v或类似命令时,它给我这个错误。

PHP分析错误:语法错误,意外的‘|’,163行的/usr/Share/php/Composer/IO/BaseIO.php中的预期变量(T_Variable)。分析错误:语法错误,意外的‘|’,第163行的/usr/Share/php/Composer/IO/BaseIO.php中的预期变量(T_Variable)

你们中的一些人知道问题可能是什么吗?我应该为php v7.4安装Composer吗?

hfwmuf9z

hfwmuf9z1#

我有几乎与OP相同的设置:Ubuntu 22.04.1 LTS和一个需要PHP 7.4.x的项目,当我试图使用任何类型的参数运行Composer时,我得到了完全相同的错误消息,无论是在项目文件夹内还是在项目文件夹外。我安装了Composer和sudo apt-get install composerapt show composer -a给了我2.2.6作为存储库版本。

主要区别在于,我没有安装PHP8.x,因为我不需要它(我使用ppa:ondrej/php存储库安装了php7.4和扩展),所以我无法切换我的PHP版本。

对我有效的是用sudo apt-get remove composer删除Composer,然后按照Composer官方网站的下载指南:https://getcomposer.org/download/

警告:他们明确表示不要重新分发安装代码,因为每个版本都会有所不同,但会链接到下载页面(完成)。无论如何,我都会这样做,因为当前的最新版本(在本文发布时为2.4.2)适用于业务处问题中规定的相同情况,并用于文件编制目的。

如何在本地安装Composer(可能需要sudo,如果版本变化,第二行hash会有所不同):

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

在此之后,如果您想要全局使用它,请将其放在路径中的某个位置,例如:

sudo mv composer.phar /usr/local/bin/composer

composer --version和同时运行安装/更新现在应该可以工作了

nbewdwxp

nbewdwxp2#

我解决了这个问题,只需重新安装Composer,但使用php 7.4作为全局php版本,现在它可以同时支持两者(php 7.4和php 8.1)。

相关问题