我正在尝试使用 libreoffice 将 Word 文档转换为 pdf。该命令在终端中运行良好,但在使用
shell_exec()
或 exec()
用 php 编写的应用程序的控制器中它不起作用。 exec()
的 return_var 是 77,我认为这意味着 :
错误的文件描述符
如有任何建议,我们将不胜感激。
我添加此命令选项来修复它:
-env:UserInstallation=file:///tmp/test
我的代码是:
$command = "{$bin} -env:UserInstallation=file:///tmp/test --headless --convert-to pdf:writer_pdf_Export --outdir '{$pdfTmpDir}' '{$path}' 2>&1";
exec($command, $output, $code);
我有相同的错误代码,并通过在命令行末尾添加“2>&1”得到了详细的错误:
(进程:24718):dconf-CRITICAL **:10:11:59.019:无法创建目录“/var/www/.cache/dconf”:权限被拒绝。 dconf 将无法正常工作。
希望这能帮助某人获得详细的错误,并有可能找到解决方案。
示例代码:
exec('/usr/bin/soffice --headless --convert-to pdf ' . BASEPATH . 'test.docx 2>&1', $v_output, $l_return);
var_dump($v_output);
var_dump($l_return);
Ì遇到了同样的错误并用以下方法修复了它: $command = "HOME=/tmp/ shellCommand ....