当从PHP调用时,PhantomJS无法呈现

时间:2014-07-30 16:54:06

标签: php shell ubuntu phantomjs vagrant

我有一个单行程序,可以从HTML文件中生成PDF:

$my_path = "/path/to/phantomjs/and/generate-pdf.js";
$output  = shell_exec("cd $my_path && phantomjs generate-pdf.js");

我可以作为root用户,我自己和apache用户(www-data)从shell成功运行此命令。更重要的是,我可以从命令行调用的PHP文件php generate-pdf.php成功运行同一行代码,并且我能够运行其他shell命令,例如touch test.txt。 HTTP请求。

为什么在从HTTP请求调用时无法生成PDF?

整个目录结构(包括phantomjs可执行文件和generate-pdf.js)已获得777个权限,safe_mode/etc/php5/apache2/php.ini已禁用/etc/php5/cli/php.ini,{{ 1}}不包含disable_functions

1 个答案:

答案 0 :(得分:0)

如果您确定shell_exec()本身已启用,我认为这是一个$PATH问题。你应该在给定phantomjs二进制文件的完整路径的情况下执行它:

shell_exec("cd $my_path && /path/to/phantomjs generate-pdf.js");