我的 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
我的总体解决方案是这样做:
- 在以下位置创建别名
~/.bashrc
:alias php="php72"
- 然后按照上述步骤安装composer,无需任何修改
- 然后返回
~/.bashrc
添加新别名:alias composer_72="php /usr/local/bin/composer"
现在我有作曲家在工作PHP7.2