我在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的同时正确设置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 ''