我正在尝试在aws linux服务器上将文件从doc转换为pdf。在我以前的机器上,它运行良好,但现在我的新机器上出现问题。唯一的区别是我已从PHP 7.0升级到PHP 7.2。和免费的Office版本

LibreOffice 6.0.1.1 00m0(内部版本:1)

我尝试给予root权限libreoffice和执行命令的程序包,但没有成功。

这是我正在使用https://github.com/szonov/libreoffice-converter的软件包

我在laravel 5.4中使用它。这是执行操作的程序包中的代码

    $replacement = array(
        'bin'        => $this->bin,
        'convert_to' => $convert_to,
        'outdir'     => $outdir,
        'source'     => $this->source
    );
    $cmd = $this->makeCommand($replacement);
    $cmd = "sudo ".$cmd;
    shell_exec($cmd);
    $result = false;
    if (file_exists($outfile)) {
        $this->mkdir(dirname($this->destination));
        $result = rename($outfile, $this->destination);
    }

    // remove temporary sub directory
    rmdir($outdir);
    return $result;

我尝试附加sudo,因为当我dd命令执行时,使用sudo可以在命令行中工作。

最佳答案

因此,您需要使用以下类似的方法

Execute root commands via PHP

或者您应该启用登录到www-data用户

sudo usermod -s /bin/bash www-data

然后,您应该以该用户身份登录并使用权限修复所有问题,以便可以运行命令
sudo su www-data

完成此操作后,请确保使用以下方法重置登录名
sudo usermod -s /bin/nologin www-data

在用户终端中解决问题后,您也可以在apache中运行没有问题的命令

关于php - 找不到Libreoffice来源AWS Linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48974697/

10-11 09:31