在具有多个 PHP 版本的 CentOS 上安装 Composer

在具有多个 PHP 版本的 CentOS 上安装 Composer

我的 CentOS 7 服务器上安装了多个版本的 PHP(5.6 和 7.2)。

谷歌搜索 CentOS 7 Composer 安装似乎有相同的指南,只是在不同的博客下,步骤如下:

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
$ chmod +x /usr/local/bin/composer
$ composer -V    
Composer version 1.5.2 2017-09-11 16:59:25

然而,这立即引发了一个错误。所以我改变了这个命令:

$ curl -sS https://getcomposer.org/installer | php

到:

$ curl -sS https://getcomposer.org/installer | php72

现在下载了该文件,但是当我尝试使用composer -V(在其他步骤之后)时,它会抛出此错误:

/usr/bin/env: php: 没有这样的文件或目录

所以我想/usr/local/bin/composer看到顶部的那行:

#!/usr/bin/env php

我把它改为

#!/usr/bin/env php72

composer -V现在的做法表明:

PHP Fatal error:  Uncaught PharException: phar "/usr/local/bin/composer" has a broken signature in /usr/local/bin/composer:23
Stack trace:
#0 /usr/local/bin/composer(23): Phar::mapPhar('composer.phar')
#1 {main}
  thrown in /usr/local/bin/composer on line 23

我用 php56 尝试了同样的结果。

如何在运行多个 PHP 版本的 CentOS 7 服务器上正确安装 Composer?

旁注:让我知道这对于超级用户来说是否更好

答案1

这完全取决于您想要使用的 php 版本。您能否向我们展示当您尝试使用 php56 安装 Composer 时出现的错误?

无论如何,“php”只是真正的 php 二进制文件的符号链接,在您的情况下似乎指向 php 56,以确保在符号链接上执行 ls -l ,您可以通过键入找到它

whereis php

因此,如果您希望完整的链是 php72,请将该符号链接替换为指向 php72 二进制文件的新符号链接。或者也许您可以使用别名:

alias php="/path/to/php72"

答案2

我的总体解决方案是这样做:

  1. 在以下位置创建别名~/.bashrcalias php="php72"
  2. 然后按照上述步骤安装composer,无需任何修改
  3. 然后返回~/.bashrc添加新别名:alias composer_72="php /usr/local/bin/composer"

现在我有作曲家在工作PHP7.2

相关内容