我想使用wkhtmltopdf进行HTML到PDF的转换。
当我尝试通过linux终端进行转换时,它可以正常工作。
但是当我尝试使用php脚本时,它无效。
我正在尝试直接执行二进制文件。
这是我正在尝试使用PHP的代码。
exec('/home/binary_loc/wkhtmltopdf http://www.google.com /home/user/output.pdf');
我的二进制文件位于“index.php”所在的文件夹中。
我试图用PHP获取wkhtmltopdf二进制版本,然后返回版本。
但是我无法理解为什么不能用php for pdf执行它。
以下是使用php进行版本检查的代码。
error_reporting(E_ALL);
ini_set('display_errors', '1');
$cmd = "./wkhtmltopdf --version";
$t = shell_exec($cmd);
echo $t;
exit()
有人有解决方案吗?
我想要这个,因为这也可以在共享主机中使用。无需在服务器中安装wkhtmltopdf。
答案 0 :(得分:0)
定义wkhtmltopdf可执行文件的完整路径以及输出文件夹的完整路径。
要调试尝试这样的事情:
shell_exec("/home/binary_loc/wkhtmltopdf http://www.google.com /home/user/output.pdf > /home/user/debug.log 2>&1");
将错误传递给文件
答案 1 :(得分:0)
Exec可能没有执行文件的权限。 PHP通常以apache
或nobody
运行,而不是您的用户帐户。您必须确保为其运行的任何用户设置执行位。您可以使用其所在目录中的chmod 755 wkhtmltopdf
来向所有用户授予读取和执行权。
请注意,在某些共享主机上,exec()
已被禁用。请与您的主人核实,以确保您可以访问它。