运行Snappy时出现以下错误,这是WKHTMLTOPDF的PHP绑定:
Fatal error: Uncaught exception 'RuntimeException' with message 'The file '/Users/username/test.pdf' was not created (command: /usr/bin/wkhtmltopdf --lowquality '/var/folders/--/--ze9OC9GTSBW3tCl6UCR++++TQ/-Tmp-/knp_snappy4f761d35744a96.74626529.html' '/Users/username/test.pdf').' in /Applications/MAMP/htdocs/includes/wkhtmltopdf/Knp/Snappy/AbstractGenerator.php:261 Stack trace: #0 /Applications/MAMP/htdocs/includes/wkhtmltopdf/Knp/Snappy/AbstractGenerator.php(117): Knp\Snappy\AbstractGenerator->checkOutput('/Users/username...', '/usr/bin/wkhtml...') #1 /Applications/MAMP/htdocs/includes/wkhtmltopdf/Knp/Snappy/AbstractGenerator.php(127): Knp\Snappy\AbstractGenerator->generate('/var/folders/--...', '/Users/username...', Array, false) #2 /Applications/MAMP/htdocs/test.php(14): Knp\Snappy\AbstractGenerator->generateFromHtml('<h1>Test</h1>', '/Users/username...') #3 {main} thrown in /Applications/MAMP/htdocs/includes/wkhtmltopdf/Knp/Snappy/AbstractGenerator.php on line 261
但是,如果我通过命令行运行它们执行的操作,它就可以正常工作:
/usr/bin/wkhtmltopdf --lowquality '/var/folders/--/--ze9OC9GTSBW3tCl6UCR++++TQ/-Tmp-/knp_snappy4f761d35744a96.74626529.html' '/Users/username/test.pdf
由于这个工作只是找到,人们会认为我可以通过exec()函数或shell_exec()函数执行它,两者都没有返回任何内容(没有错误或任何东西)。执行'whoami'确实会返回我的用户名。
安全模式已关闭,wkhtmltopdf文件的权限设置为777。
我知道还有其他几个与此类似的线程,但是从最初的提问者那里得到的解决方案根本没有意义或根本没有解决方案。任何人都可以提供任何见解吗?
答案 0 :(得分:3)
查看此答案的来源: http://oneqonea.blogspot.com/2012/04/why-does-wkhtmltopdf-work-via-terminal.html
在MAMP的/ Applications / MAMP / Library / bin / envvars文件中,您会注意到以下两行:
DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
export DYLD_LIBRARY_PATH
如下所示评论它们两者(注意每行上的“#”前缀):
#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATH
最后,在同一个文件中,添加以下命令以确保PHP从Apache继承的$ PATH环境变量包含包含wkhtmltopdf可执行文件的目录。您的命令将类似于:
export PATH=/parent/path/of/wkhtmltopdf/executable:$PATH