我已经在一个安装了Apache的FreeBSD服务器上安装了无头LibreOffice,以便可以编程地转换文档(例如odt->pdf)。它可以通过命令行工作!但我的目标是能够从php中使用它。这需要Web用户(www)能够运行LibreOffice。但它无法正常工作。
当以我的用户名运行LibreOffice时,我会得到:
%libreoffice --headless -convert-to pdf Litteraturundervisningogit.doc
javaPathHelper: not found #This should not be a problem, says people on the net.
convert /usr/home/bundsgaard.net/www/jeppe/foredrag/Litteraturundervisningogit.doc ->
/usr/home/bundsgaard.net/www/jeppe/foredrag/Litteraturundervisningogit.pdf using writer_pdf_Export
%
如果我以 root 用户身份尝试相同的命令,它不起作用。使用来自 PHP 的 www-user 也是同样的问题:
sp# libreoffice --headless -convert-to pdf Litteraturundervisningogit.doc
javaPathHelper: not found
sp#
问题在于我无法从LibreOffice获取任何信息,因此我不知道为什么除了我的账户之外,LibreOffice不愿意以其他用户身份运行。
我的问题是:如何在php中通过exec()给www用户权限运行LibreOffice?
$PATH
里有什么? - Wrikken%sudo php program.php
,那么作为客户端是否具有权限? - Peter Krauss