【问题标题】:Laravel - wkhtmltopdf on OS X returning an errorLaravel - OS X 上的 wkhtmltopdf 返回错误
【发布时间】:2016-07-07 06:08:36
【问题描述】:

我使用Laravel Snappy 作为WKHTMLToPDF 的包装器,以允许我的应用程序生成PDF。不幸的是,我收到了这个错误:

The exit status code '126' says something went wrong:
stderr: "sh: /audit/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: 
cannot execute binary file
"
stdout: ""
command: /audit/vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 --lowquality

我按照以下说明通过Composer 安装了两个 64 位软件包(PDF 和图像):https://github.com/KnpLabs/snappy#wkhtmltopdf-binary-as-composer-dependencies,我可以看到这些软件包已安装在我的应用程序的 /vendor/ 文件夹中。

如果我 cd 进入 PDF 目录并运行 sh ./wkhtmltopdf-amd64,它会返回:cannot execute binary file

以前,我在文件夹上运行了这两个命令来尝试阻止此错误:chmod a+x wkhtmltopdf-amd64sudo chmod +x wkhtmltopdf-amd64 - 但似乎都没有解决执行二进制文件的问题。

我使用的是最新版本的 OS X,非常感谢任何有关我如何使其正常工作的帮助或指导。

【问题讨论】:

    标签: php laravel pdf wkhtmltopdf


    【解决方案1】:

    我刚刚开始使用相同的配置进行设置 - MAMP、OSX、Laravel、Snappy。

    我发现我必须从这里下载 OSX 二进制文件并安装它: http://wkhtmltopdf.org/downloads.html

    安装后,wkhtmltopdf 二进制文件将位于/usr/local/bin

    安装后,请确保您可以从终端运行命令。

    然后,在您的 config/snappy.php 文件中,确保将“二进制”选项设置为正确的路径。

    在这之后,我的工作正常。

    【讨论】:

      【解决方案2】:

      首先去http://wkhtmltopdf.org/downloads.html,然后根据你的操作系统下载合适的包。安装包后执行以下操作:

      在 config/snappy.php 文件中,写下已经安装在 /usr/local/bin 中的 {bin 文件} 的名称,在我的例子中是 wkhtmltopdf :

      '二进制' => '/usr/local/bin/{bin 文件}'

      所以:

      '二进制' => '/usr/local/bin/wkhtmltopdf'

      【讨论】:

        【解决方案3】:

        这是我所做的:

        我使用 dmg 安装程序文件在我的 Catalina 版本上安装了 wkhtmltopdf。所以“wkhtmltopdf”命令在终端中工作。所以我所要做的就是不用在 snappy.php 中给出路径,而是简单地传递了命令名称 - “wkhtmltopdf”。

        所以我的 snappy 配置看起来像这样:

        pdf' => [
            'enabled' => true,
            'binary'  => 'wkhtmltopdf',
            'timeout' => false,
            'options' => [
                'enable-local-file-access' => true,
                'encoding'      => 'UTF-8'
            ],
            'env'     => [],
        ],
        

        现在这成功了。

        【讨论】:

          【解决方案4】:

          您在使用 Homestead 吗?我认为一些二进制依赖项是基于 Linux 的,如果安装在 Mac 上将无法工作。我想!

          【讨论】:

          【解决方案5】:
          1. 在此处根据您的系统下载并安装正确的软件包https://wkhtmltopdf.org/downloads.html

          2. 确保二进制文件已加载到“/usr/local/bin”目录中。

          3. 通过添加新条目来更新您的项目 .env: WKHTML_PDF_BINARY='/usr/local/bin/wkhtmltopdf'

          4. 确保从项目 .env 文件中获取正确的二进制路径。

          您现在应该可以生成 PDF 文件了。

          系统:

          • macOS 大苏尔
          • PHP 7.4
          • 作曲家 2
          • wkhtmltopdf 0.12.6

          【讨论】:

            猜你喜欢
            • 2016-12-31
            • 2015-06-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多