【发布时间】:2013-03-25 14:37:59
【问题描述】:
我正在尝试使用来自 Ruby On Rails 的 wicked-pdf 创建一个 pdf。它在开发模式下运行良好,但是当我在生产中部署时出现错误:
wkhtmltopdf is not executable
我的 wkhtmltopdf 可执行文件位于:
rails_root/bin/wkhtmltopdf-i386
Warbler 已设置为在 war 中包含 bin 文件夹:
config.includes = FileList["classes/*","bin/*"]
我已将 wicked pdf 配置为在正确的位置找到垃圾箱:
WickedPdf.config = {
:exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s
}
我运行 warbler,然后在 jBoss 应用服务器上部署 war。当我尝试生成 PDF 时,我收到关于它不可执行的错误。它在开发模式下运行良好 - 而不是在战争中。
二进制文件的权限应该没问题:
-rwxr-xr-x 1 username group 11446024 Apr 3 11:40 wkhtmltopdf-i386
我尝试使用 wkhtmltopdf-binary gem,而不是手动包含 wkhtmltopdf 二进制文件。这在开发模式下也可以正常工作,但 Wicked PDF 在生产中找不到二进制文件。
更新:我将 wicked-pdf 配置更改为在生产模式下指向由“wkhtmltopdf-binary”gem 提供的二进制文件。它也出现wkhtmltopdf is not executable 错误。路径最终是:jboss-5.1.0.GA/server/default/tmp/3j001-3g0fg5-hf2xi49o-1-hf2xiuld-9q/myrailsapp.war/WEB-INF/gems/gems/wkhtmltopdf-binary-0.9.9.1/bin/wkhtmltopdf_linux_386
【问题讨论】:
-
您是否在远程服务器上安装了
wkhtmltopdf? -
我在 rails 目录中有
wkhtmltopdf二进制文件,并包含在war中。我能够让它工作的唯一方法是将wkhtmltopdf二进制文件放在war之外的某个地方。 -
@lightswitch05 看起来你有双 /gems -- 那是正确的目录吗?如果您更新您的 exe_path 以从我下面的答案中取出示例中的 /gems,那可能会起作用。
标签: ruby-on-rails jruby wicked-pdf warbler