2012-08-04 17 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的问题。