我可以运行phantomjs-netsniff代码在终端中创建har文件(以root身份),但是当我使用php执行它时,返回会创建har文件但是没有咬。两次执行相同的代码。
我在php中禁用了安全模式,对har生成文件夹有777权限。我错过了什么。
我的操作系统是64位。我用https://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-x86_64.tar.bz2来安装。
php code
<?php
$rrd= 'phantomjs /var/www/xxx/netsniff.js "http://www.wiki.com" > /var/www/xxx/xx/xx.har';
exec($rrd);
?>
答案 0 :(得分:0)
你应该经常检查错误;这可以告诉你出了什么问题:
$output = array();
$returnCode = null;
exec($rrd, $output, $returnCode);
print_r($output);
echo "Return code was $returnCode\n";
从你的评论中,你说你得到返回代码127,这通常意味着“找不到命令”。 phantomjs
在你的路上?如果您以PHP运行的用户身份键入which phantomjs
,您会得到什么?避免这种情况的一种简单方法是在命令中指定二进制文件的完整路径,即在命令字符串中使用/path/to/phantomjs
而不是phantomjs
。