2017-01-02 13 views
0

У меня есть библиотека UNOCONV, установленная на моем CentOS 7.3.16.11. При запуске конвертации файлов из CLI это прекрасно работает, и я получаю PDF документ обратно:
unoconv -d spreadsheet --format=pdf -o temp/ ./document.docx
UCONV не удается преобразовать файлы в PHP на CentOS

Но при попытке запустить его из 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

Что может быть плохого запуска UNOCONV из PHP ?

+0

Там нет PATH настройки для пользователь работает php. – Maerlyn

ответ

0

Помимо выяснить, как установить PATH должным образом при использовании PHP вы можете взломать unoconv скрипт и измените строку 1174 из

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

в

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

+0

Текущая версия unoconv, доступная в github, обрабатывает эту проблему аналогичным образом. – khaoz