Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

libjpeg.so.8 not found when using wkhtmltopdf static binary

I am using wkhtml2pdf to generate pdf files, the local binaries work just fine, but i don't know why i'm having this problem when deploying to heroku. I get this error

The exit status code '127' says something went wrong: stderr: "/app/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: error while loading shared libraries: libjpeg.so.8: cannot open shared object file: No such file or directory " stdout: ""

My composer.json includes these 3 files i need

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

Where snappy is the class that handles wkhtml2pdf binaries.

Snappy is correctly configured to load the binaries from the vendors folder

    '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(),
),

But the problem is, when i'm trying to generate a pdf, in the moment i call wkhtml2pdf it stops with an error about libjpeg.so.8 that is something i know nothing about.

like image 478
Mercality Avatar asked Aug 25 '14 01:08

Mercality


1 Answers

1) Locate the "missing library:

locate libjpeg.so.8

2) try to run strace on the static binary and check the log, where it is looking for the missing lib:

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

After you find out where it is looking for it, you can simply put there for the static binary, and it should start to work ...

I know this is not a "nice" solution, but with specific, hard-to-find libraries / binaries this is the only way to get them working ...

like image 173
Gipsz Jakab Avatar answered Oct 25 '22 21:10

Gipsz Jakab