UNOCONV无法在CentOS上的PHP中转换文件

问题描述 投票:0回答:1

我在CentOS 7.3.16.11上安装了UNOCONV库。当我从CLI运行文件转换时,它工作正常,并且我得到了PDF文档:unoconv -d spreadsheet --format=pdf -o temp/ ./document.docx

但是当我尝试从PHP 5.6.29执行它时,它没有任何输出PDF。我在Python环境中遇到错误:Traceback (most recent call last): File "/usr/bin/unoconv", line 1196, in <module> run() File "/usr/bin/unoconv", line 1108, in run office_environ(of) File "/usr/bin/unoconv", line 202, in office_environ os.environ['PATH'] = realpath(office.basepath, 'program') + os.pathsep + os.environ['PATH'] File "/usr/lib64/python2.7/UserDict.py", line 23, in \__getitem__ raise KeyError(key) KeyError: 'PATH'

使用以下方法检查了我的环境中的路径:echo $PATH输出为:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/username/.local/bin:/home/username/bin

从php运行UNOCONV有什么问题?

php centos centos7 shell-exec unoconv
1个回答
0
投票

除了弄清楚如何在使用php的同时正确设置PATH之外,您可能会破解unoconv脚本并更改第1174行为

os.environ['PATH'] = realpath(office.basepath, 'program') + os.pathsep + os.environ['PATH']

to

os.environ['PATH'] = realpath(office.basepath, 'program') + os.pathsep + os.environ['PATH'] if 'PATH' in os.environ.keys() else ''

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.