【问题标题】:How to specify to use a specific PHP version when running "composer install"?运行“composer install”时如何指定使用特定的PHP版本?
【发布时间】:2020-05-27 23:07:57
【问题描述】:

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

运行 composer install 时,它使用系统默认的 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 安装并启用。

【问题讨论】:

    标签: php composer-php php-7.2 php-7.4


    【解决方案1】:

    这里的问题不止一个。

    首先,您很可能不需要告诉composer 使用一个或另一个解释器。如果您知道平台要求在运行时将是正确的,但运行时可执行文件与 install 可执行文件不同,您可以简单地说:

    composer install --ignore-platform-reqs
    

    这样,composer 不会检查运行时和扩展是否与您在 composer.json 上声明的内容相匹配(但您需要确保在项目实际运行的服务器上满足这些要求)。


    但如果你真的想用不同的运行时执行 composer...

    composer 使用 shebang + env 来确定要使用的 PHP 可执行文件。

    基本上它使用#!/usr/bin/env php 来查找可用的php 可执行文件,就像你做的那样。

    如果您想使用不同的可执行文件,您只需要明确说明即可。

    例如如果你的 PHP 7.2 安装在 /usr/bin/php7.2 和 composer 在 /usr/local/bin/composer,你只需要这样做:

    # /usr/bin/php7.2 /usr/local/bin/composer install
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-21
      • 2017-04-16
      • 1970-01-01
      • 2023-03-18
      • 2018-08-17
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      相关资源
      最近更新 更多