如果这个问题真的很基础,我提前道歉。我的背景是 Windows,我被要求维护一台状况不佳且正在生产中使用的 RedHat Linux 服务器。
问题是,从 Apache 中的脚本执行时与从命令行执行时,PHP 的版本不同。
例如:
从命令行:
从网页(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。
我什至应该从哪里开始查找如何配置它?为什么 Apache 使用的 PHP 版本与从脚本调用的版本不同?
我查看了 Apache 的配置文件,但没有看到任何引人注目的东西。
有什么建议么?
不幸的是,目前无法将服务器升级到最新的 PHP。计划是构建一个新服务器并迁移到该服务器。
答案1
从 CLI运行which php
并添加脚本路径,以便运行exec('/path/to/the/cli/php
。如果您的用户受到如此限制以至于无法运行 which(那将严重混乱):运行命令行的用户具有不同的环境,因此与PATH
用户所拥有的环境不同。PATH
如果我没记错的话,这个变量虽然是很久以前的事了,但它甚至在 DOS 中也存在。因此,获取 PATH ( ) 中的值echo $PATH
并手动检查哪个目录包含名为 的文件php
。无论如何,这就是它的作用which
。
如果这是你的工作,你迫切需要阅读一些基本的 Linux 书籍。