我使用unoconv作为apache用户来创建PDF文件。作为终端用户,它运行良好,但是当我作为apache用户运行时。我得到错误。
sudo -u apache /usr/bin/unoconv -o /home/gloryque/tmp/1431347151.pdf -f pdf /home/gloryque/tmp/8.doc
我遇到错误
mkstemp("/usr/share/httpd/.execoool7VwpU") failed: Permission denied
mkstemp("/usr/share/httpd/.execooouoUVdw") failed: Permission denied
mkstemp("/usr/share/httpd/.execooopRuy27") failed: Permission denied
mkstemp("/usr/share/httpd/.execooov92dRJ") failed: Permission denied
mkstemp("/usr/share/httpd/.execoooiZZVFl") failed: Permission denied
mkstemp("/usr/share/httpd/.execooowk5LuX") failed: Permission denied
mkstemp("/usr/share/httpd/.execoooCgtDjz") failed: Permission denied
mkstemp("/usr/share/httpd/.execoooLxXy8a") failed: Permission denied
mkstemp("/usr/share/httpd/.execooo8LCvXM") failed: Permission denied
我在centos 7机器上
我建议以下内容:
使用最新版本的unoconv(发行时至少为v0.7,或今天来自GitHub的master分支)
使用LibreOffice的最新稳定版本(最新版本使用较少的内存,通常速度更快,崩溃更少)
使用本地LibreOffice python二进制文件运行unoconv,例如。/opt/libreoffice4.4/program/python / usr / bin / unoconv -f pdf file.doc
在unoconv脚本shebang中对python路径进行硬编码,因此放在第一行#!/ opt / libreoffice4.4 / program / python而不是#!/ usr / bin / env python。(Apache / PHP通常不设置PATH,因此unoconv失败)
确保运行unoconv的用户有权访问其HOME目录
如果执行上述操作,一切都会正常进行。如果LibreOffice仍然崩溃,则应该处理上游项目。还要注意,LibreOffice不能同时处理多个连接/客户端,因此理想情况下,您的PHP脚本应正确锁定和/或排队请求。
如果仍有任何问题,请将其报告给:http : //github.com/dagwieers/unoconv/issues
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句