在Heroku 18上安装PDFTK以在我的Laravel应用中使用

时间:2019-04-20 06:56:03

标签: laravel heroku pdftk

我已将此pdftk构建包添加到我在Heroku上的免费应用程序中:https://github.com/fxtentacle/heroku-pdftk-buildpack.git

我无法将应用程序部署到Heroku:

Preparing runtime environment...
-----> Checking for additional extensions to install...
-----> heroku-pdftk-buildpack app detected
cp: cannot stat 'binaries-heroku-18/*': No such file or directory
 !     Push rejected, failed to compile heroku-pdftk-buildpack app.
 !     Push failed

此外,我添加了heroku/php并将此buildpack的索引设置为1。当我转到应用程序的临时URL时,Laravel运行,但是由于某些原因,pdftk似乎没有跑。有人遇到过同样的问题吗?

3 个答案:

答案 0 :(得分:0)

heroku-18堆栈的buildpack尚未更新。它的compile脚本试图将binaries-$STACK/的{​​{3}}转换为/app/bin/,但是只包含cedar-14heroku-16的二进制目录。

您可以copy precompiled binaries,即roll your app back to heroku-16,但是当然这也会更改其他软件包版本:

heroku apps:stacks:set heroku-16 --app myapp

这与从Ubuntu 18.04升级到Ubuntu 16.04非常相似,但这可能是您最简单的解决方案。

或者,您可以派生发现的pdftk buildpack并为Ubuntu 18.04更新它,但这不太容易。

pdftk已从Ubuntu的官方存储库supported until April, 2021中删除。您尝试使用的buildpack在其各自的二进制目录中包括libgcjcedar-14的{​​{1}}。如果要更新buildpack,则还必须包括该内容。


  

此外,我添加了heroku-16并将此buildpack的索引设置为1。当我转到应用程序的临时URL时,Laravel运行,但是由于某些原因,heroku/php似乎没有跑。有人遇到过同样的问题吗?

您看到的错误正在阻止您的应用程序被部署。您没有看到带有pdftk的应用程序的新版本,但是上一次成功部署的版本。您必须先解决构建问题,然后才能使用pdftk

答案 1 :(得分:0)

一旦此PR合并:https://github.com/fxtentacle/heroku-pdftk-buildpack/pull/9,则buildpack应与heroku-18堆栈一起使用。

也许对回购所有者发表评论,要求他们合并?


目前,您可以使用可用于heroku-18堆栈的分叉和更新版本:https://github.com/Aesthetikx/heroku-pdftk-buildpack

如果您使用的是app.json文件,则将pdftk buildpack指向派生版本:

  "buildpacks": [
    ...,
    {
      "url": "https://github.com/fxtentacle/heroku-pdftk-buildpack.git"
    }
  ]

答案 2 :(得分:0)

我关注了这篇文章(http://derekbarber.ca/blog/2014/11/20/using-pdftk-with-rails-on-heroku/),尽管在Rails应用程序上也使PDFTK在Heroku-18上工作。

下面摘录的代码是HT @ derek-barber。

mkdir -p [my_project]/vendor/pdftk/lib [my_project]vendor/pdftk/bin
cd /tmp
git clone https://github.com/millie/pdftk-source.git
cd pdftk-source
tar xzvf pdftk.tar.gz
mv bin/pdftk [my_project]/vendor/pdftk/bin/
mv lib/libgcj.so.12 [my_project]/vendor/pdftk/lib/
cd [my_project]
git add -f vendor/pdftk/
git commit -m "Add pdftk dependencies"
git push heroku master
heroku config:set LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/vendor/pdftk/lib
heroku config:set PATH=/app/.heroku/python/bin:/usr/local/bin:/usr/bin:/bin:/app/vendor/p