作曲家在 php v7.4 和 ubuntu 22.04 上本地给出错误

Dan*_*lGG 4 php ubuntu composer-php

我这里有一个小问题。

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

现在的问题是找不到作曲家。

当我运行composer、composer install、composer -v 或类似命令时,它会出现此错误。

PHP 解析错误:语法错误,意外的 '|',期望变量 (T_VARIABLE) 在 /usr/share/php/Composer/IO/BaseIO.php 第 163 行 解析错误:语法错误,意外的 '|',期望变量 (T_VARIABLE) )在 /usr/share/php/Composer/IO/BaseIO.php 第 163 行

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

sla*_*leo 7

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

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

对我有用的是删除作曲家sudo apt-get remove composer,然后按照官方作曲家网站上的下载指南进行操作:https ://getcomposer.org/download/

警告:他们明确表示不要重新分发安装代码,因为它会随每个版本而变化,而是链接到下载页面(完成)。无论如何我都会这样做,因为当前的最新版本(发布时为 2.4.2)适用于 OP 问题中指定的相同情况并用于文档目的。

如何在本地安装 Composer(可能需要sudo,如果版本更改,第二行哈希将会不同):

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');"
Run Code Online (Sandbox Code Playgroud)

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

sudo mv composer.phar /usr/local/bin/composer
Run Code Online (Sandbox Code Playgroud)

composer --version并且运行安装/更新现在应该可以工作