猿问

如何指定在运行“作曲家安装”时使用特定的PHP版本?

在服务器中,我们有一些webapp,实际上同时安装了7.2和7.4。


在运行作曲家安装时,它使用PHP设置作为系统中的默认设置,实际上是7.4。


事实上


$ which php

/usr/bin/php


$ php -v

PHP 7.4.2 (cli) ...


$ ls -la /usr/bin/php

lrwxrwxrwx 1 root root 21 Nov 20 11:20 /usr/bin/php -> /etc/alternatives/php


$  ls -la /etc/alternatives/php

lrwxrwxrwx 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


拉莫斯之舞
浏览 121回答 1
1回答

慕丝7291255

这里存在多个问题。首先,您很可能真的不需要告诉使用一个或另一个解释器。如果您知道平台要求在运行时是正确的,但运行时可执行文件与可执行文件不同,您可以简单地说:composerinstallcomposer install --ignore-platform-reqs这样,composer 就不会检查运行时和扩展是否与您声明的内容匹配(但您需要确保在实际运行项目的服务器上满足这些要求)。composer.json但是,如果您真的想使用不同的运行时执行作曲家...composer使用shebang +来确定将使用哪个PHP可执行文件。env基本上,它用于查找可用的可执行文件,就像您所做的那样。#!/usr/bin/env phpphp如果你想使用不同的可执行文件,你只需要明确它。例如,如果您的 PHP 7.2 安装在 上,而作曲家安装在 上,您只需要执行以下操作:/usr/bin/php7.2/usr/local/bin/composer# /usr/bin/php7.2 /usr/local/bin/composer install
随时随地看视频慕课网APP
我要回答