Gre*_*reg 12 php linux libreoffice
运行无头Ubuntu服务器12.something.
根@服务器: chown www-data /my/path/ -R
根@服务器: chgrp www-data /my/path/ -R
根@服务器: chmod 755 /my/path/ -R
根@服务器: libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
convert /my/path/foo.ppt -> /my/path/foo.pdf
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.
根@服务器: sudo -i -u www-data
$libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
convert /my/path/foo.ppt -> /my/path/foo.pdf
Error: Please reverify input parameters...
Run Code Online (Sandbox Code Playgroud)
该死的.
根@服务器: sudo -i -u someotheruser
$libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
convert /my/path/foo.ppt -> /my/path/foo.pdf
Error: Please reverify input parameters...
Run Code Online (Sandbox Code Playgroud)
该死的.
任何人都有任何想法?试图研究这个让我更加困惑.这可能是一个错误还是一些依赖怪癖?
小智 16
我终于找到了答案......添加:
export HOME=/tmp &&
Run Code Online (Sandbox Code Playgroud)
到了开头,所以:
export HOME=/tmp && libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
Run Code Online (Sandbox Code Playgroud)
这对我在CentOS 6.5上工作,在PHP中作为shell_exec().
当作为sofficeNodeJS应用程序的一部分在CloudFoundry(Diego)容器中运行二进制无头(LibreOffice 5.0.5.2)时,我们面临相同的问题。
似乎较新的版本libreoffice不期望可写HOME,而是尝试写入TMPDIR。
strace 显示:
8349 mkdir("app/tmp", 0777) = -1 ENOENT (No such file or directory)
8349 open("app/tmp/lu8349pzgegi.tmp", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 ENOENT (No such file or directory)
与 TMPDIR=app/tmp
我们通过将其设置TMPDIR为App进程的用户可以写的目录来修复它,即TMPDIR=/tmp在CloudFoundry上:
process.env.TMPDIR = "/tmp";
您需要做的所有事情 - 创建文件夹“/var/www/.config”。当您尝试转换 www-data 用户 libreoffice 下的某些文件时,需要用户主目录中的“.config”目录。但 libreoffice 无权创建此类文件夹。用户 www-data 默认主目录是“/var/www”。所以只需运行命令:
sudo mkdir /var/www/.config
sudo chmod 700 /var/www/.config
sudo chown www-data /var/www/.config
Run Code Online (Sandbox Code Playgroud)
Mys*_*srt -1
就像 Jacek 在他的评论中所说的那样,让您尝试以 sudoer 身份执行命令的用户无需密码。然后将你的 libreoffice 命令更改为
sudo libreoffice <rest of command>
Run Code Online (Sandbox Code Playgroud)
为我工作。我遇到过同样的问题。