在服務器中,我們有一些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 關注
- 108 瀏覽
添加回答
舉報
0/150
提交
取消