Как запустить/установить wkhtmltopdf в php-buildpack (Cloud Foundry)

я хочу использовать wkhtmltopdf в своем php-приложении. поэтому я добавил wkhtmltopdf в свой файл apt.yml и надеялся, что все будет работать...

... к сожалению, это не так.

каждый раз, когда я запускаю wkhtmltopdf google.ch output.pdf, я получаю следующую ошибку:

wkhtmltopdf: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Кто-нибудь знает, как правильно настроить wkthtmltopdf в php-builtpack облачного литейного производства?


person Nio    schedule 22.10.2018    source источник
comment
На данный момент я использую статическую встроенную зависимость композитора github.com/h4cc/wkhtmltopdf-amd64. .   -  person Nio    schedule 23.10.2018


Ответы (1)


Две возможности:

  • Вам не хватает общих библиотек. Вам нужно будет добавить их в apt.yml, чтобы они также были установлены. Похоже, что вам не хватает libgl1-mesa-dev. Хотя могли быть и другие. Если вы запустите ldd wkthtmltopdf, вы увидите список всех зависимостей и того, чего не хватает.

  • Зависимости установлены, но не найдены при попытке запустить wkthtmltopdf. Если вы используете cf ssh для входа в контейнер приложения, чтобы вы могли запустить wkthtmltopdf, это может быть проблемой. Вместо этого попробуйте запустить cf ssh "<app-name>" -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''". В противном случае вам потребуется вручную source .profile.d/* скриптов. Пакеты сборки устанавливают переменные env в этих сценариях, и они часто указывают, где можно загрузить общие библиотеки.

Надеюсь, это поможет!

person Daniel Mikusa    schedule 22.10.2018
comment
да, мы уже используем команду cf ssh "<app-name>" -t -c "/tmp/lifecycle/launcher /home/vcap/app bash ''" для открытия ssh-соединения. Я добавил libgl1-mesa-dev к своему apt.yml и вижу, что он устанавливается во время cf push, но ошибка wkhtmltopdf все еще сохраняется... Когда я запускаю ldd /home/vcap/deps/0/bin/wkhtmltopdf, только libgl.so.1 не найден. У вас есть другая идея, как установить отсутствующую библиотеку? - person Nio; 23.10.2018
comment
Если вы знаете, что libgl.so.1 установлен, но ldd его не видит, возможно, проблема связана с LD_LIBRARY_PATH. Возможно, вам придется настроить это. Ваше решение, вероятно, лучше, поскольку доступен статический двоичный файл, поэтому просто используйте его. - person Daniel Mikusa; 23.10.2018