根据工作路径运行不同的 PHP CLI 版本

根据工作路径运行不同的 PHP CLI 版本

我设置了 PHP-FPM,以便为不同的文件夹提供不同版本的 PHP。这是由于遗留代码而必须的,并且是使用 apache 的 实现的.htaccess

我的问题是:有人有一种简单优雅的方法在 CLI 中执行此操作吗?我在想也许文件夹中有一个文件指示要运行的 PHP 版本,但不确定如何进行。

我的预期结果是,当我php ...在文件夹 A 中运行时,它使用 PHP 7.4 运行,而当我在文件夹 B 中执行相同操作时php ...,它使用 PHP 8.1 运行

谢谢。

答案1

假设你的 PHP 版本安装在不同的路径中,例如:

  • php 7.4 现已推出/usr/local/php74/bin
  • php 8.1 已发布/usr/local/php81/bin
  • ETC

创建一个脚本php,在每个目录中查找一个.phppath描述要使用哪个 php 二进制文件的文件。例如:

#!/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 在当前目录中。如果您在子目录中工作,它将找不到它。这是一个可以解决的问题,但它留给读者作为练习。

相关内容