linux 用户创建文件失败,linux-Unoconv作为apache用户无法创建文件

我使用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脚本应正确锁定和/或排队请求.

标签:shell,centos7,apache,linux

来源: https://codeday.me/bug/20191028/1951762.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值