在 php 中使用 libreoffice5 将 doc 转换为 pdf 时遇到问题。
我编写了一个 Linux shell 来将 office doc 文档转换为 pdf (t.sh):
#!/bin/sh
libreoffice5.0 --headless --invisible --convert-to pdf --outdir $1 $2
然后我在 apache htdocs 目录中创建了一个 php 文件,如下所示(mytest.php):
<?php
$cmd = './t.sh ./ ./55ffbc34c3808.docx';
var_dump($cmd);
$rtn = exec($cmd, $rtnResult, $rtnVal);
var_dump($rtnResult);
但是当我运行http://localhost/mytest.php时,页面永远不会停止并且没有打印任何结果(没有生成 pdf)。当我运行 ps -ef|grep libre 时,我看到了以下内容:
maijin 10403 10402 0 03:11 ? 00:00:00 /opt/libreoffice5.0/program/oosplash --headless --invisible --convert-to pdf --outdir ./ ./55ffbc34c3808.docx
maijin 10420 10403 1 03:11 ? 00:00:00 /opt/libreoffice5.0/program/soffice.bin --headless --invisible --convert-to pdf --outdir ./ ./55ffbc34c3808.docx
maijin 10427 8755 0 03:11 pts/1 00:00:00 grep libre
这些过程永远不会停止。我检查了 libreoffice,它是正确的:
>ls -l /usr/local/bin/libreoffice5.0
lrwxrwxrwx 1 root root 35 Aug 22 02:54 /usr/local/bin/libreoffice5.0 -> /opt/libreoffice5.0/program/soffice
如果我在 linux 控制台中运行 t.sh shell,可以生成 pdf 文件。为什么我不能在 php 中将 doc 转换为 pdf?