【问题标题】:php shell exec hangs when using wkhtmltopdf使用 wkhtmltopdf 时 php shell exec 挂起
【发布时间】:2012-08-04 09:23:22
【问题描述】:

我正在尝试使用 PHP 从 HTML 生成 PDF。我正在运行 Mac OS X 作为我的开发环境,尽管我希望这段代码在生产 linux 服务器上运行。

到目前为止,我得到了:

$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 脚本。有什么想法吗?

【问题讨论】:

  • 你怎么知道它在等待服务器?
  • 您使用的是什么版本的 wkhtmltopdf?我刚刚在 OS X 10.7.4 上测试了 wkhtmltopdf-0.9.9-OS-X.i368 静态二进制文件,它在输出“完成”后立即返回命令行。
  • @rexmac 非常感谢。原来我使用自制软件来安装 wkhtmltopdf。使用静态二进制解决了我的问题。

标签: php wkhtmltopdf shell-exec


【解决方案1】:

问题出在rexmac 指出的版本上。使用 wkhtmltopdf 的静态二进制文件解决了 OP 的问题。

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 2015-02-15
    • 2012-03-21
    • 2015-03-01
    • 2014-02-12
    • 2016-04-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    相关资源
    最近更新 更多