我目前使用的是 Symfony Process 组件,它依赖于proc_open
PHP 的功能。我需要启动一个命令wkhtmltopdf
,它具有以下形式:
/usr/local/bin/wkhtmltopdf --window-status "___RENDER_PDF___" --orientation "portrait" --run-script "window.basilOptions = {storages: ['memory'] }; document.body.addEventListener('status:app:rendered', function () { window.status = '___RENDER_PDF___'; });" "http://localhost/p/lps#poll/lpsp002" "/tmp/pdf_d6fbWO"`
当我直接在我的 shell 上运行这个命令时,它工作得很好,大约需要 6 秒才能执行。但是,当我将 PHP 与 Process Component 一起使用时,它会超时……而当使用exec
orproc_open
函数时,它会无限期地运行。Process Component 的默认超时时间是 60 秒(即使延长它也没有任何效果)。
我在 PHP 5.4 和 PHP 5.5 上试过这个,但结果似乎是一样的。
任何想法为什么这个命令在 shell 上运行得很好但不能通过 PHP 运行?在 MAMP 而不是 MAMP 环境中测试(在 5.4 和 5.5 版本上)。它可以在带有 PHP 5.5 的 Ubuntu 14.04 上运行。
我想也许,当通过 PHP 和 MAMP 时,这个过程可以完成,但仍然像这个 bug所报告的那样挂起?当我有更多信息时,我会更新,看看是否确实生成了 PDF。
谢谢。