我使用wkhtml2pdf生成pdf文件,本地二进制文件工作正常,但我不知道为什么我在部署到heroku时遇到此问题。我收到此错误
退出状态代码'127'表示出错了:stderr:“/ app / vendor / h4cc / wkhtmltopdf-amd64 / bin / wkhtmltopdf-amd64:加载共享库时出错:libjpeg.so.8:无法打开共享目标文件:没有这样的文件或目录“stdout:”“
我的composer.json包含了我需要的这3个文件
"h4cc/wkhtmltopdf-amd64": "0.12.x",
"h4cc/wkhtmltoimage-amd64": "0.12.x",
"barryvdh/laravel-snappy": "0.1.x"
snappy是处理wkhtml2pdf二进制文件的类。
Snappy已正确配置为从vendor文件夹加载二进制文件
'pdf' => array(
'enabled' => true,
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),
'options' => array(),
),
'image' => array(
'enabled' => true,
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),
'options' => array(),
),
但问题是,当我试图生成一个pdf时,在我调用wkhtml2pdf的那一刻它停止了一个关于libjpeg.so.8的错误,这是我一无所知的。
答案 0 :(得分:2)
1)找到"缺少的库:
locate libjpeg.so.8
2)尝试在静态二进制文件上运行strace并检查日志,它正在寻找缺少的lib:
strace /app/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64
在找到它所在的位置之后,你可以简单地将它放在静态二进制文件中,它应该开始工作......
我知道这不是一个很好的"解决方案,但有特定的,难以找到的库/二进制文件,这是让它们工作的唯一方法......