8

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

LibreOffice 6.0.1.1 00m0(构建:1)

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

这是我正在使用的包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 它在命令行中工作..

4

3 回答 3

1

所以你需要使用类似下面的东西

通过 PHP 执行 root 命令

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

sudo usermod -s /bin/bash www-data

然后您应该使用该用户登录并修复所有权限问题,以便您可以运行命令

sudo su www-data

完成此操作后,请确保使用以下方法重置登录

sudo usermod -s /bin/nologin www-data

在用户终端中解决问题后,您也可以在 apache 中运行命令而不会出现问题

于 2018-03-08T08:00:15.440 回答
0

您必须更改存储文件的目录的所有权,请在您的 aws ubuntu 机器上尝试以下命令。

sudo chown -R www-data:www-data /var/www/my-project/

于 2018-03-02T18:05:15.643 回答
0

这个问题只有2个场景

  1. 用户没有权限。
  2. 问题出在代码上。

我假设 Laravel 与你合作得很好,除了这部分

这意味着您可以访问存储文件,为什么不保存在那里?

如果你可以保存在那里,比较文件夹,你的问题就解决了。

如果你不能在那里保存,那么问题出在我怀疑的代码上,因为你说之前一切都运行良好。

于 2018-03-07T05:00:09.210 回答