如何在运行 "composer install"时指定使用特定的PHP版本?
How to specify to use a specific PHP version when running "composer install"?
在服务器中,我们有一些 webapp,实际上同时安装了 7.2 和 7.4。
安装运行 composer时,系统默认使用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
我必须执行的应用 composer install
是 PHP 7.2,所以我需要作曲家尊重这一点。
我确定它正在尝试使用 PHP 7.4,因为它抱怨缺少 php7.4-mbstring
。但它已为 PHP 7.2 安装并启用。
这里的问题不止一个。
首先,您很可能真的不需要告诉 composer
使用一个或另一个解释器。如果您 知道 平台要求在运行时是正确的,但运行时可执行文件与 install
可执行文件不同,您可以简单地说:
composer install --ignore-platform-reqs
这样作曲家将不会检查运行时和扩展是否与您在 composer.json
上声明的相匹配(但您需要确保在项目实际运行的服务器上满足这些要求) .
但是如果你真的想用不同的运行时来执行 composer...
composer
使用 shebang + env
来确定要使用哪个 PHP 可执行文件。
基本上它使用 #!/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
在服务器中,我们有一些 webapp,实际上同时安装了 7.2 和 7.4。
安装运行 composer时,系统默认使用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
我必须执行的应用 composer install
是 PHP 7.2,所以我需要作曲家尊重这一点。
我确定它正在尝试使用 PHP 7.4,因为它抱怨缺少 php7.4-mbstring
。但它已为 PHP 7.2 安装并启用。
这里的问题不止一个。
首先,您很可能真的不需要告诉 composer
使用一个或另一个解释器。如果您 知道 平台要求在运行时是正确的,但运行时可执行文件与 install
可执行文件不同,您可以简单地说:
composer install --ignore-platform-reqs
这样作曲家将不会检查运行时和扩展是否与您在 composer.json
上声明的相匹配(但您需要确保在项目实际运行的服务器上满足这些要求) .
但是如果你真的想用不同的运行时来执行 composer...
composer
使用 shebang + env
来确定要使用哪个 PHP 可执行文件。
基本上它使用 #!/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