2012-08-04 16 views
4

我正嘗試使用PHP從HTML生成PDF。我將Mac OS X作爲開發環境運行,但我希望此代碼在生產型Linux服務器上運行。使用wkhtmltopdf時,php shell執行會掛起

到目前爲止我有:

$url = escapeshellarg("http://www.google.com/"); 
$output = shell_exec("/usr/local/Cellar/wkhtmltopdf/0.11.0_rc1/bin/wkhtmltopdf " . $url . " /tmp/tmp_pdf.pdf 2>&1"); 
echo "<pre>$output</pre>"; 

此代碼生成的/tmp/tmp_pdf.pdf的PDF。 問題是,它從來不會

echo "<pre>$output</pre>"; 

瀏覽器只是掛起說等待服務器....

它彷彿在了shell_exec命令無法完成。我注意到,當我從終端運行wkhtmltopdf時,它不會退回到命令行。我得到:

Loading page (1/2) 
Printing pages (2/2)            
Done 

然後,它也坐在那裏,類似於PHP腳本。有任何想法嗎?

+0

你怎麼知道它正在等待服務器? – hakre 2012-08-04 09:43:50

+1

你使用的是什麼版本的wkhtmltopdf?我只是在OS X 10.7.4上測試了wkhtmltopdf-0.9.9-OS-X.i368靜態二進制文件,輸出「Done」後立即返回到命令行。 – rexmac 2012-08-04 10:21:20

+0

@rexmac非常感謝。原來我用自制軟件安裝了wkhtmltopdf。使用靜態二進制文件解決了我的問題。 – tdh87 2012-08-04 10:34:59

回答

0

問題出在rexmac指出的版本。使用wkhtmltopdf的靜態二進制文件解決了OP的問題。