我在运行这个二进制文件时遇到了麻烦(我花了好几天时间!)。
我想在带有Apache Web服务器(icdsoft.com)的Linux操作系统上运行wkhtmltoimage,托管公司告诉我应该使用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的图形系统,不适合托管服务器。“
如果有人能帮助我,我真的很感激!非常感谢!
答案 0 :(得分:2)
我在我的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
(更新)一些可能有用的提示:
编辑:
如果你在Linux服务器上有css字体使用问题(我有),
例如:未定义的符号:FcFreeTypeQueryFace ,然后fontconfig可能需要更新
请参阅此问题:http://code.google.com/p/wkhtmltopdf/issues/detail?id=352