我似乎无法让wkhtmltopdf
使用用户帐户。
以root用户身份:
wkhtmltopdf -V
wkhtmltopdf http://google.com google.pdf
以上两项工作。但作为普通用户,我收到错误:
wkhtmltopdf -V
wkhtmltopdf: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory
显然,wkhtmltopdf
正在正常工作和安装,因为它适用于root用户,但不适用于所有用户。
我尝试过设置权限:
[root@server ~]# chmod 755 /root/wkqt/
[root@server ~]# chmod 755 /root/wkqt/lib/
[root@server ~]# chmod 755 /root/wkhtmltopdf-qt/
[root@server ~]# chmod 755 /root/wkhtmltopdf-qt/lib/
[root@server ~]# chmod 644 /root/wkqt/lib/*so*
[root@server ~]# chmod 644 /root/wkhtmltopdf-qt/lib/*so*
我还尝试添加到visudo
:
motorconne localhost=/bin/wkhtmltopdf
motorconne localhost=/root/wkhtmltopdf-qt/lib/libQtWebKit.so.4
但仍然没有运气。有什么想法吗?
答案 0 :(得分:2)
我遇到了同样的问题。
您可能在wkhtmltopdf wiki上执行了安装步骤。
事实证明libQtWebKit.so.4
位于/root/wkqt/lib/
目录中。
这意味着您的用户必须有权进入此目录。
但是,当您键入cd /root
时,很可能会拒绝您访问root
文件夹。
快速而肮脏的解决方案是向任何人授予对根文件夹的访问权限(是的,我说“快速而肮脏”)。例如:
sudo chmod a+rx /root
显然,这远非完美。在完美的世界中,您不会在wkqt
目录中安装root
lib。相反,/opt/wkqt
会更合适。您可以通过在构建configure
时更改wkhtmltopdf-qt
命令行来执行此操作。例如:
./configure -nomake tools,examples,demos,docs,translations -opensource -prefix "/opt/wkqt"
希望这有帮助!