PHP中HTML转换PDF失败问题
本帖最后由 小小学生 于 2021-9-27 14:05 编辑感谢大佬们的回答,我把目录又设置了权限,就可以了,在最后一层我分享了我的代码,大家可以参考
之所以会提示系统目录错误是个乌龙,我把线上域名写成了本地域名,导致线上修改的任何操作都和本地无关。大无语事件。
再次感谢大家。
https://static.52pojie.cn/static/image/hrline/1.gif
我是使用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)
有大神知道这是什么原因吗?我需要怎么做才可以成功生成呢 或许是php-fpm的用户没有权限去执行,你可以直接将wkhtmltox/bin/wkhtmltopdf 路径写上并补全试试看 应该是权限问题。你看一下有没有报错信息,报错信息贴出来 exec('/usr/local/bin/wkhtmltopdf '.$html.' /www/wwwroot/www.XXX.com/public/resume/'.$fileName.'.pdf');
参考下,用绝对路径试下 张筱家 发表于 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是空的 php01 发表于 2021-9-27 09:46
应该是权限问题。你看一下有没有报错信息,报错信息贴出来
没有报错,$res = exec('/www/wwwroot/wkhtmltox/bin/wkhtmltopdf https://www.baidu.com /www/wwwroot/baid2122211u.pdf',$arr);
这样执行出来就是$arr为空 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为空 用Mpdf吧,这个好用,我用这个生成电子合同的PDF版 小小学生 发表于 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:15
你是php-fpm运行用户是www吗,你可以切换www到用户执行看看是缺少那些权限
get_current_user()打印出来是Administrator
页:
[1]
2