wkhtmltopdf(使用pdfkit)安装在Ubuntu上但不在Rails中工作

时间:2013-07-25 20:59:47

标签: ruby-on-rails-3 ubuntu pdf-generation wkhtmltopdf pdfkit

我已经做了几个小时的研究,试图让PDFKit在我的生产环境中工作。一切都在开发中运行良好,“种类”在我的生产服务器上运行。

  • 我正在使用Nginx / Passenger运行64位Ubuntu服务器。
  • 我可以使用wkhtmltopdf google.com public/test5.pdf从我的网站根目录成功创建pdf - 所以我知道wkhtmltopdf已安装并正常工作
  • 我可以使用rails console使用PDFKit成功创建PDF,我可以运行kit = PDFKit.new('http://google.com')然后file = kit.to_file('public/test.pdf') - 所以至少在rails控制台中我知道PDFKit能够成功运行< / LI>

但是,这只是在实际的网站上不起作用。当我访问URL(在开发模式下工作)http://staging.myapp.com/tours/5/print_tour.pdf时,我得到“我们很抱歉,但出了点问题”错误。我的乘客错误日志只显示:

  • 机架:/ home / deploy / myapp / current:没有这样的文件或目录 - 捆绑exec哪个wkhtmltopdf
  • 但是,我可以从我的网络根运行bundle exec which wkhtmltopdf罚款吗?

我很困惑,因为wkhtmltopdf在命令行中运行正常,在rails控制台中的PDFKit也是如此,但是当从Nginx / Passenger提供页面时,某些东西会中断。救命! : - )

1 个答案:

答案 0 :(得分:1)

wkhtmltopdf返回的路径是什么,它与开发环境中的路径有什么不同?

PDFkit期望wkhtmlpdf位于/ usr / local / bin中,所以如果你没有将wkhtmlpdf二进制文件安装到该位置,请确保在初始值设定项中指定路径,如下所示:

# config/initializers/pdfkit.rb
PDFKit.configure do |config|
  config.wkhtmltopdf = '/path/to/wkhtmltopdf'
  # config.root_url = "http://staging.myapp.com" # Use only if your external hostname is unavailable on the server.
end

如果您的问题与尝试从服务器上的错误路径调用wkhtmltopdf的PDFkit无关,您是否尝试过查看wicked_pdf之类的其他gem是否能够正确使用wkhtmltopdf?