吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1114|回复: 11
收起左侧

[已解决] PHP中HTML转换PDF失败问题

[复制链接]
小小学生 发表于 2021-9-27 09:05
本帖最后由 小小学生 于 2021-9-27 14:05 编辑

感谢大佬们的回答,我把目录又设置了权限,就可以了,在最后一层我分享了我的代码,大家可以参考
之所以会提示系统目录错误是个乌龙,我把线上域名写成了本地域名,导致线上修改的任何操作都和本地无关。大无语事件。
再次感谢大家。



我是使用wkhtmltopdf,是这样操作的
wget http://download.gna.org/wkhtmlto ... eneric-amd64.tar.xz
解压
tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
复制到目录
cp wkhtmltox/bin/wkhtmltopdf /usr/bin/
就可以在linux上运行,并且也成功了
wkhtmltopdf https://www.baidu.com baidu.pdf
但是在php上运行,却生成不出来pdf文件
使用的是shell_exec(wkhtmltopdf https://www.baidu.com baidu.pdf)
这个函数我已经解禁了,并且其他的命令也可以运行成功,比如shell_exec(curl https://www.baidu.com)
有大神知道这是什么原因吗?我需要怎么做才可以成功生成呢

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

张筱家 发表于 2021-9-27 09:44
或许是php-fpm的用户没有权限去执行,你可以直接将wkhtmltox/bin/wkhtmltopdf 路径写上并补全试试看
php01 发表于 2021-9-27 09:46
应该是权限问题。你看一下有没有报错信息,报错信息贴出来
blackgod 发表于 2021-9-27 09:52
exec('/usr/local/bin/wkhtmltopdf    '.$html.' /www/wwwroot/www.XXX.com/public/resume/'.$fileName.'.pdf');


参考下,用绝对路径试下
 楼主| 小小学生 发表于 2021-9-27 10:32
张筱家 发表于 2021-9-27 09:44
或许是php-fpm的用户没有权限去执行,你可以直接将wkhtmltox/bin/wkhtmltopdf 路径写上并补全试试看

$res = exec('/www/wwwroot/wkhtmltox/bin/wkhtmltopdf https://www.baidu.com /www/wwwroot/baid2122211u.pdf',$arr);
我这么写了 还是不可以 打印出来arr是空的
 楼主| 小小学生 发表于 2021-9-27 10:33
php01 发表于 2021-9-27 09:46
应该是权限问题。你看一下有没有报错信息,报错信息贴出来

没有报错,$res = exec('/www/wwwroot/wkhtmltox/bin/wkhtmltopdf https://www.baidu.com /www/wwwroot/baid2122211u.pdf',$arr);
这样执行出来就是$arr为空
 楼主| 小小学生 发表于 2021-9-27 10:51
blackgod 发表于 2021-9-27 09:52
exec('/usr/local/bin/wkhtmltopdf    '.$html.' /www/wwwroot/www.XXX.com/public/resume/'.$fileName.'.p ...

我试了下用绝对路径
$res = exec('/www/wwwroot/wkhtmltox/bin/wkhtmltopdf https://www.baidu.com /www/wwwroot/baid2122211u.pdf',$arr);
这样执行出来就是$arr为空
千百度 发表于 2021-9-27 11:15
用Mpdf吧,这个好用,我用这个生成电子合同的PDF版
张筱家 发表于 2021-9-27 11:15
小小学生 发表于 2021-9-27 10:32
$res = exec('/www/wwwroot/wkhtmltox/bin/wkhtmltopdf https://www.baidu.com /www/wwwroot/baid2122211 ...

你是php-fpm运行用户是www吗,你可以切换www到用户执行看看是缺少那些权限
 楼主| 小小学生 发表于 2021-9-27 11:37
张筱家 发表于 2021-9-27 11:15
你是php-fpm运行用户是www吗,你可以切换www到用户执行看看是缺少那些权限

get_current_user()打印出来是Administrator
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表