Sye*_*zmi 8 php amazon-ec2 libreoffice laravel php-7.2
我想在我的aws linux服务器上将文件从doc转换为pdf.在我以前的机器上它工作正常,但现在我的新机器出现问题.唯一的区别是我已经从PHP 7.0升级到PHP 7.2.和libre办公室版本
LibreOffice 6.0.1.1 00m0(Build: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;
Run Code Online (Sandbox Code Playgroud)
我尝试追加sudo,因为当我执行命令并执行使用sudo时,它在命令行中工作.
所以你需要使用如下所示的东西
或者您应该启用该www-data
用户登录
sudo usermod -s /bin/bash www-data
Run Code Online (Sandbox Code Playgroud)
然后您应该使用该用户登录并修复所有权限问题,以便您可以运行命令
sudo su www-data
Run Code Online (Sandbox Code Playgroud)
完成此操作后,请确保使用以下命令重置登录
sudo usermod -s /bin/nologin www-data
Run Code Online (Sandbox Code Playgroud)
在用户终端中解决问题后,您也可以在 apache 中运行命令而不会出现问题