【发布时间】:2014-09-22 10:27:02
【问题描述】:
我有一个从 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 generate-pdf.php 调用的PHP 文件成功运行同一行代码,并且可以从HTTP 请求运行其他shell 命令,例如touch test.txt。
为什么从 HTTP 请求调用时无法生成 PDF?
整个目录结构(包括 phantomjs 可执行文件和 generate-pdf.js)已被赋予 777 权限,safe_mode 已从 /etc/php5/apache2/php.ini 和 /etc/php5/cli/php.ini 中禁用,disable_functions 不包括 @987654328 @。
【问题讨论】:
-
您可以在测试 PHP 脚本中运行相同的设置并预先生成 HTML 吗?我假设您在 generate-pdf.js 中有硬编码的 HTML 文件?因为您没有传递信息...
标签: php shell ubuntu phantomjs vagrant