2012-01-18 3 views
0

Я использую ubuntu с libreOffice. Я установил unoconv для преобразования файла *.odp в *.pdf. Когда я запускаю команду unoconv -f pdf myfile.odp с терминала, тогда она работает очень хорошо. Я хочу сделать то же самое с использованием метода PHP shell_exec(). Итак, я написал следующий код:PHP shell_exec() в ubuntu

$output = shell_exec('unoconv -f pdf test.odp 2>&1'); 
echo $output; 

Но он показывает следующее сообщение об ошибке:

/usr/bin/python: /opt/lampp/lib/libz.so.1: no version information available (required by /usr/bin/python) 
Traceback (most recent call last): File "/usr/bin/unoconv", line 24, in import uno, 
unohelper File "/usr/lib/python2.7/dist-packages/uno.py", line 34, in import pyuno SystemError: dynamic module not initialized properly 

Как я могу решить эту проблему?

Заранее спасибо.

+0

Когда вы запускаете 'unoconv -f pdf test.odp 2> & 1' в своем терминале, он бросает ту же ошибку? –

+0

Пожалуйста, сделайте $ output = shell_exec ('env && unoconv -f pdf test.odp 2> &1'); echo $ output; сравните с env вашей оболочки –

+0

@EduardLuca нет, но 'unoconv -f pdf test.odp' отлично работает в терминале и не показывает ничего с 'unoconv -f pdf test.odp' в php. –

ответ

1

его же ошибка для меня тоже .. но если мы запустим его с exec(), он покажет некоторую другую ошибку.

Кроме того, HTTP-адрес Apache работает как пользователь, который является основной проблемой для него. если он может запускаться пользователем root, тогда проблема будет решена.