找到正确的PHP二进制文件 - exec()

时间:2013-12-27 10:34:36

标签: php exec

我正在尝试从PHP页面中执行单独的PHP脚本。经过一些研究,我发现可以使用exec()函数。

我还引用了this SO solution来查找php二进制文件的路径。所以我的完整命令看起来像这样:

$file_path = '192.168.1.13:8080/doSomething.php';
$cmd = PHP_BINDIR.'/php '.$file_path; // PHP_BINDIR prints /usr/local/bin
exec($cmd, $op, $er);
echo $er; // prints 127 which turns out to be invalid path/typo

doSomething.php

echo "Hi there!";

我知道$file_path是正确的道路,因为如果我打开它的价值;即192.168.1.13:8080/doSomething.php,我确实得到了“你好!”打印出来。这让我认为PHP_BINDIR.'/php'是错误的。

我是否应该尝试以其他方式获取php二进制文件的路径?

1 个答案:

答案 0 :(得分:1)

您要求的文件可通过Web服务器访问,而不是本地PHP脚本。因此,您只需通过

即可获得脚本的结果
$output = file_get_contents($file_path);

如果您出于某些原因确实需要exec该文件,那么您必须在服务器目录结构中为该文件提供完整路径,而不是服务器 URL < /强>:

$file_path = '/full/path/to/doSomething.php';
$cmd = PHP_BINDIR.'/php '.$file_path;
exec($cmd, $op, $er);