从脚本调用PHP时,会使用错误版本的PHP

如果这个问题真的很基本,我会提前道歉。 我的背景是在Windows中,我被要求维护一个状态不好,正在使用的RedHat Linux服务器。

问题是PHP的版本在从Apache的脚本执行时与命令行不同。

例如:

从命令行:

在这里输入图像说明

从网页(Apache):

在这里输入图像说明

从网页调用的一个php脚本:

在这里输入图像说明

脚本被这个php代码和函数调用:

$exec_result = sku_exec(CLIMPORT.FILE_NAV, '', $_POST['nav_skus']); function sku_exec($file_path, $call, $args) { $exe = $file_path.' '; if($call != '' && isset($call) && $call) $exe .= $call.' '; $exe .= $args; // echo $exe.'<hr />'; exec('php '.$exe, $return_data); return $return_data; } 

我需要降级脚本以使用5.2.9而不是5.4.1。

我甚至从哪里开始寻找如何configuration? 为什么Apache正在使用的PHP版本与它从脚本调用的版本不同?

我看着Apache的configuration文件,但没有看到任何跳出我的东西。

有什么build议么?

不幸的是,现在不能将服务器升级到最新的PHP。 计划是build立一个新的服务器并迁移到它。

从CLI运行which php ,并将path添加到脚本中,以便运行exec('/path/to/the/cli/php 。如果用户受限制,无法运行哪个搞砸了):运行命令行的用户有一个不同的环境,所以有一个不同的PATH PATHvariables,如果我没有记错,虽然很久以前,甚至在DOS下也是存在的,所以把PATH中的值( echo $PATH ),并手动检查哪个目录包含一个名为php的文件,反正是这样。

如果现在是你的工作,你很需要阅读一些基本的Linux书籍。