Php

根據工作路徑執行不同的 PHP CLI 版本

  • August 30, 2022

我設置 PHP-FPM 為不同的文件夾提供不同版本的 PHP。由於遺留程式碼,這是必要的,並且是使用 apache 的.htaccess.

我的問題是:有沒有人有一個簡單優雅的方式在 CLI 中做到這一點?我在想文件夾中可能有一個文件指示要執行的所需 PHP 版本,但不確定如何去做。

我的預期結果是,當我php ...在文件夾 A 中執行時,它使用 PHP 7.4 執行,當我php ...在文件夾 B 中執行相同操作時,它使用 PHP 8.1 執行

謝謝你。

假設您的 PHP 版本安裝在不同的路徑中,例如:

  • php 7.4 在/usr/local/php74/bin
  • php 8.1 在/usr/local/php81/bin
  • ETC

創建一個腳本,在每個目錄中php查找描述要使用的 php 二進製文件的文件。.phppath就像是:

#!/bin/sh

# This sets the default if not otherwise specified
phppath=/usr/local/php81/bin/php

if [ -f .phppath ]; then
 phppath=$(cat .phppath)
fi


exec $phppath "$@"

把它放在你的$PATH某個地方,你應該準備好了。在您想要的目錄中,例如 PHP 7.4,創建一個適當的.phppath文件:

echo /usr/local/php74/bin/php > .phppath

請注意,正如所寫,這只.phppath 在目前目錄中找到。如果您在子目錄中工作,它將找不到它。這是一個可以解決的問題,但留給讀者作為練習。

引用自:https://serverfault.com/questions/1109389