1

我通过调用 exec 函数在我的本地主机(windows xp)上使用 wkhtmltopdf 安装(我什至从其他目录复制了安装)。一切正常。

如何在 linux 共享网络服务器上使用它?管理员声称,这是必要的编译,并且没有什么比复制和即时使用在 linux 上是不可能的。

我试过了

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

但什么也没发生(任何错误,file_exists 为真)。确实,不能像我在 Windows 中使用它一样使用它吗?

我从http://code.google.com/p/wkhtmltopdf/downloads/list在本地主机上使用 wkhtmltopdf-0.9.9-installer.exe 。

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

4

2 回答 2

0

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

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

于 2013-04-13T19:52:24.667 回答
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查看文件权限和信息。前面命令的输出可能包含线索。

于 2013-04-22T06:11:09.157 回答