1

我在 Windows 服务器上运行 PHP 5.4.9

我尝试在 PHP 中运行所有脚本命令(exec、shell_exec、system、proc_open、passthru)。所有似乎都返回空或空。

我已将 phantomjs 添加为 PATH 变量。

phantomjs --version在命令提示符下运行,它返回1.8.2

虽然当我尝试跑步时

$return = exec("phantomjs --version")

或者

$return = shell_exec("phantomjs --version", $output)

$return始终为 null 并且$output为空。

我确保 IUSR 和 IIS_IUSRS 用户有权运行 phantomjs.exe

在 php.ini 中禁用了安全模式

另外,我尝试运行exec('ls') && exec('ipconfig /all'),并且那些输出我期望的数据。

我不确定还能尝试什么。

4

2 回答 2

1

I was facing the same problem.. The thing is phantomjs requires complete path for all Here is the solution I came up with:

$getout = exec('D:\\xampp\\htdocs\\phantomjsdir\\phantomjs.exe D:\\xampp\\htdocs\\rasterisejsdir\\rasterize.js http://localhost/pagetobecaptured/test D:\\xampp\\htdocs\\outputfiledir\\test2.jpg "1800px*840px"',$o,$e);
于 2015-03-22T08:27:18.663 回答
0

您非常接近解决方案。基本上是:

$stdout = shell_exec('time /T');
echo $stdout;

您需要确保 Phantom 二进制文件位于路径上或使用完整路径调用。

有关执行 PhantomJS 的完整示例,请参阅“jakoch/PHPUnit-headless”的驱动程序文件

于 2014-04-16T14:10:00.237 回答