【问题标题】:wkhtmltoimage error - cannot execute binary filewkhtmltoimage 错误 - 无法执行二进制文件
【发布时间】:2011-11-23 22:35:42
【问题描述】:

我很难让这个二进制文件运行(我已经花了好几天的时间!)。

我想让 wkhtmltoimage 在带有 Apache Web 服务器 (icdsoft.com) 的 Linux 操作系统上运行,托管公司告诉我应该使用 static-amd64。我在以下位置下载了文件:

http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltoimage-0.11.0_rc1-static-amd64.tar.bz2 并解压缩。

我没有对服务器的 ssh 访问权限,但托管公司说我可以从以下目录运行二进制文件:

/home/notice/www/www/wkhtmltoxdoc/

...虽然我认为它必须是这样的:

/usr/local/bin/

所以我已将文件“wkhtmltoimage-amd64”上传到 /home/notice/www/www/wkhtmltoxdoc/ 并将其重命名为“wkhtmltoimage”。我还复制了这个文件并将其命名为“wkhtmltoimage.bin”(有人说这很有帮助)。我将文件和目录“wkhtmltoxdoc”都更改为权限777。

然后我尝试使用 php 调用二进制文件(带有和不带有 .bin 扩展名),但没有产生任何结果(没有创建文件):

注意:[bbc_url] = http://www.bbc.com(我不能发布超过 2 个链接)

shell_exec('./wkhtmltoxdoc/wkhtmltoimage.bin [bbc_url] ./wkhtmltoxdoc/bbc.jpg');
shell_exec('./wkhtmltoxdoc/wkhtmltoimage [bbc_url] ./wkhtmltoxdoc/bbc2.jpg');

然后我尝试让二进制文件在我的本地系统 OSx 10.6.8 上运行 - 我复制了之前的 amd-64 文件和 32 位文件 (http://code.google.com/p/wkhtmltopdf /downloads/detail?name=wkhtmltoimage-0.11.0_rc1-static-i386.tar.bz2) 到/usr/local/bin 并把他们的权限改为777。这些是去/usr/local/bin目录的结果并尝试在终端中运行它:

$ wkhtmltoimage-amd64 [bbc_url] /Users/jazz/Desktop/bbc.jpg
-bash: /usr/local/bin/wkhtmltoimage-amd64: cannot execute binary file

$ wkhtmltoimage-i386 [bbc_url] /Users/jazz/Desktop/bbc.jpg
-bash: /usr/local/bin/wkhtmltoimage-i386: cannot execute binary file

目标是在外部服务器上获取 wkhtmltoimage,但我只是想在本地进行测试。

我在 wkhtmltoimage 的手册中找到了这个: “在 Linux 上,它同时依赖于 glibc 和 openssl,此外,您需要安装 xserver 但不一定要运行。您需要安装不同的字体,包括 xfonts-scalable (Type1) 和 msttcorefonts。”

我的服务器支持说: “Glibc 和 OpenSSL 在服务器上可用。但是 XServer 不可用。我们尝试从 shell 运行命令。它正在运行而没有产生任何错误。但是,它无法创建图像。很可能没有 XServer 它不行。很遗憾,我们没有办法安装 XServer。它是 Linux 的图形系统,不适合托管服务器。"

如果有人能帮我解决这个问题,我将不胜感激!非常感谢!

【问题讨论】:

    标签: php linux binary


    【解决方案1】:

    我在本地 Mac 上成功运行了 OSX wkhtmltoimage 静态版本(我发现的最新预打包:wkhtmltoimage-OSX-0.10.0_rc2-static.tar.bz2),我上传了 i386 版本的服务器。

    我首先在我的 OSX 终端本地测试了它

    ./wkhtmltoimage --width 1280 --height 700 http://www.google.com wktest.jpg
    

    (更新)一些可能有用的提示:

    • 确保在程序上设置了执行位(chmod u+x 或 ugo+x)
    • 我在我的主目录下的 linux 服务器上安装了 wkhtml
      ~/wkhtmldir (/home/用户名/wkhtmldir)。
      似乎该程序可以找到并使用放置在 ~/.fonts 中的 (TTF) 字体

    编辑:
    如果您在 Linux 服务器上使用 css 字体有问题(我有),
    例如:未定义符号:FcFreeTypeQueryFace,则 fontconfig 可能需要更新
    看到这个问题:http://code.google.com/p/wkhtmltopdf/issues/detail?id=352

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 2015-05-23
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多