2012-01-18 150 views
0

我在libreOffice中使用ubuntu。我已安裝unoconv*.odp文件轉換爲*.pdf。當我從終端運行命令unoconv -f pdf myfile.odp然後它工作得很好。我想用PHP shell_exec()方法做同樣的事情。所以,我寫了下面的代碼:ubuntu中的shell_exec()

$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'時,它是否會拋出同樣的錯誤? – 2012-01-18 13:01:07

+0

請執行$ output = shell_exec('env && unoconv -f pdf test.odp 2> &1'); echo $ output;並與您shell的環境進行比較 – 2012-01-18 13:01:59

+0

@EduardLuca no但unoconv -f pdf test.odp在終端。並且在php中使用'unoconv -f pdf test.odp'不顯示任何內容 – 2012-01-18 13:04:01

回答

1

它對我來說也是一樣的錯誤。但是如果我們用exec()來運行它,它會顯示一些不同的錯誤。

此外Apache的HTTPD作爲用戶nobody運行,這是它背後的主要問題。如果它可以由root用戶運行,則問題將得到解決。