繁体   English   中英

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

[英]composer gives error locally on php v7.4 and ubuntu 22.04

我在这里有一个小问题。

Im using Ubuntu 22.04 and im working locally with php 8.1 and composer 2.2.6 and everything works good, but now i have project that requires php 7.4 so i installed the php v7.4 and change it that its my globally version for my system.

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

当我运行作曲家、作曲家安装、作曲家 -v 或类似的它给我这个错误。

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

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

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

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

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

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

如何在本地安装 Composer v2.4.2(可能需要 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');"

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

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

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

我通过再次安装作曲家解决了这个问题,但是使用 php 7.4 作为 php 版本,现在它可以同时使用(php 7.4 和 php 8.1CZ)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM