在开发服务器上找不到 wkhtmltopdf-binary

wkhtmltopdf-binary not being found on development server

在本地主机上的测试是 运行 wicked-pdf gem 输出,符合预期。它依赖于 wkhtmltopdf。

根据 indications here 我确定并验证了此目录在 Ubuntu 18.04 开发服务器上的存在:

~/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.5.4/bin 

然后更改了访问权限

chmod -R 777 ~/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/wkhtmltopdf-binary-0.12.5.4/bin

是的,bundle installreturns

Using wkhtmltopdf-binary 0.12.5.4

which wkhtmltopdf returns

/home/deploy/.rbenv/shims/wkhtmltopdf

虽然 wickedPDF gem instructions 鼓励创建初始化程序。但是目录 /usr/local/bin/ 中只有两个文件:bundle 和 bundler。所以我对发生的事情一无所知...

仍在访问调用 .pdf 扩展程序的操作 returns 错误

RuntimeError in [class]Controller#pdf
Location of wkhtmltopdf unknown

如何正确访问wkhtmltopdf?

所有的解决方案都在问题中。

一个被遗忘的因素是服务器是多用户的,wkhtmltopdf 最初是由另一个用户安装的。如wkhtmltopdf gem page states,安装时出现权限问题;然后观察到这些权限已分配给其他用户。

根据 link to wicked PDF gem,创建一个初始化程序包含:

WickedPdf.config = {
  exe_path: '/home/deploy/.rbenv/shims/wkhtmltopdf'
}

解决了问题。