使用shell_exec从php脚本运行unoconv

时间:2013-03-28 20:27:17

标签: php shell pdf command uno

我无法使用unoconv使用exec将.doc转换为php。这是我正在尝试的:

$output = exec("unoconv /opt/bitnami/apache2/htdocs/=".$fileData['name']);
error_log(print_r($output, TRUE));

此命令在控制台中运行时效果很好,但是当通过php运行时,它在错误日志中提供以下内容:

python: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by python)
python: /opt/bitnami/common/lib/libssl.so.1.0.0: no version information available (required by python)
Aborted
[Thu Mar 28 20:13:58.312843 2013] [:error] [pid 1481] [client ***] 

我不认为前两行是相关的,我不知道如何获得有关它中止的原因的更多信息。我也尝试使用存储在/usr/local/bin/unoconv.sh中的这个包装器运行它

#!/bin/bash

if [ -z "$1" ]; then
    echo "Must pass file";
    exit 10;
fi

/usr/bin/unoconv -f pdf $1.rtf

但这会产生错误

python: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by python)
python: /opt/bitnami/common/lib/libssl.so.1.0.0: no version information available (required by python)
/usr/local/bin/unoconv.sh: line 8:  2886 Aborted                 /usr/bin/unoconv $1
[Thu Mar 28 20:17:05.331830 2013] [:error] [pid 1188] [client ***]

还有什么想法可以尝试?谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

我用exec()完成了它;

$path_exe = "\"C:\Program Files (x86)\LibreOffice 4\program\python.exe\" c:\unoconv\unoconv -f png ";
exec('"C:\Program Files (x86)\LibreOffice 4\program\python.exe" c:\unoconv\unoconv -f pdf 'c:\'.$filename, $array_buffer, $code_error); 

您应该指定python.exe的路径,以及 unoconv

的路径