phantomjs 无法使用 exec 工作

phantomjs not working using exec

我可以 运行 phantomjs-netsniff 代码在终端中创建 har 文件(作为 root)但是当我使用 php 执行它时它 returns 确实创建了 har 文件但为零叮咬。两次执行相同的代码。

我已在 php 中禁用安全模式,对 har 生成文件夹的 777 权限。我错过了什么。

我的OS是centos 64位。我用 https://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-x86_64.tar.bz2 来安装。

php代码

<?php

$rrd= 'phantomjs /var/www/xxx/netsniff.js "http://www.wiki.com" > /var/www/xxx/xx/xx.har';
exec($rrd);

?>

您应该始终检查错误;这可以告诉您出了什么问题:

$output = array();
$returnCode = null;
exec($rrd, $output, $returnCode);
print_r($output);
echo "Return code was $returnCode\n";

根据您的评论,您说您得到了 return 代码 127,这通常意味着 "command not found"。 phantomjs 在你的路上吗?如果您键入 which phantomjs 作为 PHP 是 运行 的用户,您会得到什么?避免这种情况的一种简单方法是仅在命令中指定二进制文件的完整路径,即在命令字符串中使用 /path/to/phantomjs 而不是 phantomjs