【发布时间】: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 的图形系统,不适合托管服务器。"
如果有人能帮我解决这个问题,我将不胜感激!非常感谢!
【问题讨论】: