【问题标题】:libjpeg.so.8 not found when using wkhtmltopdf static binary使用 wkhtmltopdf 静态二进制文件时找不到 libjpeg.so.8
【发布时间】:2014-10-18 03:19:36
【问题描述】:

我正在使用 wkhtml2pdf 生成 pdf 文件,本地二进制文件工作得很好,但我不知道为什么我在部署到 heroku 时会遇到这个问题。我收到此错误

退出状态代码“127”表示出了点问题:stderr:“/app/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64:加载共享库时出错:libjpeg.so.8:无法打开共享目标文件:没有这样的文件或目录“标准输出:”

我的 composer.json 包含我需要的这 3 个文件

    "h4cc/wkhtmltopdf-amd64": "0.12.x",
    "h4cc/wkhtmltoimage-amd64": "0.12.x",
    "barryvdh/laravel-snappy": "0.1.x"

其中 snappy 是处理 wkhtml2pdf 二进制文件的类。

Snappy 已正确配置为从供应商文件夹加载二进制文件

    '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 的错误,这是我一无所知的。

【问题讨论】:

  • 有完全相同的问题。你解决了吗?
  • 我只是强迫作曲家下载旧版本的 wkhtml2pdf "h4cc/wkhtmltopdf-amd64": "0.11.0-RC1",我猜 libjpg.so.8 是一个 Cedar14 库和我的项目在 Cedar10 上。只是猜测。
  • 然而这就是我最终走的路线。我认为这更多地与 wkhtmltopdf 中不再包含一些静态库的事实有关。我注意到 h4cc repo 的作者提出了一张票 github.com/wkhtmltopdf/wkhtmltopdf/issues/1822 和 github.com/h4cc/wkhtmltopdf-amd64/issues/5
  • 您使用的是什么操作系统?
  • 能否请您发布命令1的输出。php -r 'print_r(gd_info());'和rpm -qa | egrep 'jpg|png'和locate libjpeg.so。

标签: php apache heroku error-handling wkhtmltopdf


【解决方案1】:

1) 找到“缺失的库:

locate libjpeg.so.8

2) 尝试在静态二进制文件上运行 strace 并检查日志,它正在寻找丢失的库:

strace /app/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64

在你找到它在哪里寻找它之后,你可以简单地将静态二进制文件放在那里,它应该开始工作......

我知道这不是一个“好”的解决方案,但对于特定的、难以找到的库/二进制文件,这是让它们工作的唯一方法......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2017-10-04
    • 2019-04-25
    • 1970-01-01
    • 2013-10-05
    • 2013-10-27
    相关资源
    最近更新 更多