在服务器中,我们有一些webapp,实际上同时安装了7.2和7.4。在运行作曲家安装时,它使用PHP设置作为系统中的默认设置,实际上是7.4。事实上$ which php/usr/bin/php$ php -vPHP 7.4.2 (cli) ...$ ls -la /usr/bin/phplrwxrwxrwx 1 root root 21 Nov 20 11:20 /usr/bin/php -> /etc/alternatives/php$ ls -la /etc/alternatives/phplrwxrwxrwx 1 root root 15 Feb 12 11:08 /etc/alternatives/php -> /usr/bin/php7.4我必须执行的应用程序是PHP 7.2,所以我需要作曲家尊重这一点。composer install我确信它试图使用PHP 7.4,因为它抱怨丢失了。但它已经安装并启用了 PHP 7.2。php7.4-mbstring
1 回答

慕丝7291255
TA贡献1859条经验 获得超6个赞
这里存在多个问题。
首先,您很可能真的不需要告诉使用一个或另一个解释器。如果您知道平台要求在运行时是正确的,但运行时可执行文件与可执行文件不同,您可以简单地说:composer
install
composer install --ignore-platform-reqs
这样,composer 就不会检查运行时和扩展是否与您声明的内容匹配(但您需要确保在实际运行项目的服务器上满足这些要求)。composer.json
但是,如果您真的想使用不同的运行时执行作曲家...
composer
使用shebang +来确定将使用哪个PHP可执行文件。env
基本上,它用于查找可用的可执行文件,就像您所做的那样。#!/usr/bin/env php
php
如果你想使用不同的可执行文件,你只需要明确它。
例如,如果您的 PHP 7.2 安装在 上,而作曲家安装在 上,您只需要执行以下操作:/usr/bin/php7.2
/usr/local/bin/composer
# /usr/bin/php7.2 /usr/local/bin/composer install
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消