如何在共享服务器上使用wkhtmltopdf

时间:2013-04-12 12:29:06

标签: php linux webserver pdf-generation wkhtmltopdf

我只是通过调用exec函数在我的localhost(windows xp)上安装wkhtmltopdf(我甚至从其他目录复制了instalation)。一切都很好。

如何在linux共享Web服务器上使用它?管理员声称,这是必要的编译,并没有像复制和immedeatelly使用不是在Linux上可能。

我试过

exec('./library/External/wkhtmltopdf-i386 --V');

但没有任何反应(任何错误,file_exists都为真)。确实,我不能像在Windows中使用它一样使用它吗?

我在http://code.google.com/p/wkhtmltopdf/downloads/list的localhost上使用了wkhtmltopdf-0.9.9-installer.exe。

在共享服务器(linux)上,我使用了wkhtmltopdf-i386(它不是.exe或.dll ......它的linux版本)。

2 个答案:

答案 0 :(得分:0)

是的,这是真的。你不能(在大多数情况下)只是将二进制可执行文件复制到linux系统并期望它能够工作。它必须编译。

您可以在此处尝试查看这是否有帮助:How to install wkhtmltopdf on a linux based (shared hosting) web server

答案 1 :(得分:0)

我会将此添加为评论,但有点太长了。

我认为您的文件应该没问题。尝试运行以下命令

shell_exec('./library/External/wkhtmltopdf-i386 --asdasdsadsad 2>> err1.txt 1>> out1.txt');
shell_exec('./library/External/wkhtmltopdf-i386 --version 2>> err2.txt 1>> out2.txt');

然后检查输出到文件out1.txt, err1.txt, out2.txt, err2.txt的内容。这可能会给你一些线索。 2>>将程序的STDERR输出转发到文本文件,1>>将STDOUT转发到文本文件。其中一个应该包含一些有趣的东西。

可能导致问题的一件事是,如果文件未在服务器中标记为可执行文件 - linux根据元数据属性识别可执行文件,但我不知道如果检查你的情况如何 - 通常我将在控制台中运行命令ls -la以查看文件权限和信息。以前命令的输出可能包含线索。