[英]PhantomJS Fails to Render When Called from PHP
我有一個單行代碼,可從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權限,從/etc/php5/apache2/php.ini
和/etc/php5/cli/php.ini
都禁用了safe_mode
,和disable_functions
不包括shell_exec
。
如果您確保啟用了shell_exec()
本身,我想這是一個$PATH
問題。 給定phantomjs二進制文件的完整路徑,您應該執行它:
shell_exec("cd $my_path && /path/to/phantomjs generate-pdf.js");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.