背景
前文提到了 安装wkhtmltopdf 和 兼容chatjs 但到部署的时候却,,,。客户的环境是[cpanel虚拟主机]。这就意味着你会的不会的shell命令全都不能用,yum rmp不能执行 不能命令安装任何软件。且最主要的是没有root和sudo权限,只能执行一些简单的ls cd ps命令。
思路
基于以上原因,直接要求客户将虚拟主机更换为服务器,但是在期间还是google了好久在cpanel中安装wkhtmltopdf。无果后仔细想想可能只有把安装好的二进制文件拷贝上去,然后再补上依赖这种还有微小的可能。
于是在本地的两个centos7虚拟机之间尝试在一台安装拷贝到另一台上面执行发现是可以的,于是赶紧复制到cpanel上面去。
尝试
先是看了cpanel用的linux发行版,应该是centos,但是无法查到是centos6还是centos7
我在本地使用centos7安装好wkhtmltopdf后拷贝上去后执行提示缺少动态链接库,一看有希望赶紧又把动态链接库拷贝了上去,但是因为没有sudo权限,无法拷贝到/usr/lib64下。想了想应该有指定lib目录的设置,查一下,果然可以通过export LD_LIBRARY_PATH来增加lib库的目录
但是由于要用php来执行,这里的思路是每次php先用shell执行设置export LD_LIBRARY_PATH后在执行wkhtmltopdf命令。
这里需要注意的是拷贝不兼容的链接库文件且指定了export LD_LIBRARY_PATH可能会导致系统瘫痪且重启后无法恢复
我退出重新登录后export指定的目录失效,但是反复尝试了几次还是没有解决版本的兼容问题
于是下拉了centos6的docker镜像,重新安装了wkhtmltopdf,重新上传了bin目录下的文件
尝试执行wkhtmltopdf -V看缺少什么依赖,结果直接成功了,测试导出一个pdf,也成功了,what???
之后把这个文件放到home的usr/bin下了
如果上面的没有成功的话,还是推荐尝试下把所有的依赖拷贝进去,然后php先执行export
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。