执行系统命令,php返回码77

问题描述 投票:0回答:3

我正在尝试使用 libreoffice 将 Word 文档转换为 pdf。该命令在终端中运行良好,但在使用

shell_exec()
exec()
用 php 编写的应用程序的控制器中它不起作用。
exec()
的 return_var 是 77,我认为这意味着 :

错误的文件描述符

如有任何建议,我们将不胜感激。

php libreoffice shell-exec
3个回答
1
投票

我添加此命令选项来修复它:

 -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);

0
投票

我有相同的错误代码,并通过在命令行末尾添加“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);

0
投票

Ì遇到了同样的错误并用以下方法修复了它: $command = "HOME=/tmp/ shellCommand ....

© www.soinside.com 2019 - 2024. All rights reserved.