Gau*_*ngh 10 ubuntu openjdk webusercontrol libreoffice
我的笔记本电脑上安装了一个Web服务器.我正在构建一个我通过本地网络访问的Web应用程序.我有一个php文件,其中包含以下行:
$command = "/usr/bin/oowriter --invisible --convert-to pdf /var/www/hackathon/document/gaurav.doc -outdir /var/www/hackathon/pdf/"
exec($command, $output, $return_var);
print_r($output);
Run Code Online (Sandbox Code Playgroud)
所以,问题是当我在终端上运行上面的代码时,php运行完美.但是当通过Web浏览器访问时,输出只是空的,并且没有按预期进行转换.
Apache错误日志显示以下行:
[Java framework]函数createSettingsDocument(elements.cxx)中的错误.
javaldx失败了!
警告:无法从javaldx读取路径
我尝试过https://wiki.archlinux.org/index.php/Libreoffice#Fixing_Java_Framework_Error的解决方案.但它没有用.
我正在使用OpenJDK 7.
有没有人知道如何使这项工作?
小智 7
不能投票,不能评论(还)......所以......
蒂姆 - 欧文所说的是真的.
该错误实际上表明函数createSettingsDocument中的错误,这是一个名为createSettingsDocument(注意:创建设置文档)的函数失败的提示....
这是你(或至少我)让它工作的方式:
在我的服务器上,所需的目录实际上是/ var/www/libreoffice,而在我的桌面计算机中,目录将是/var/www/.config/libreoffice,因此您需要确保.
小智 5
Fraber的回答为我解决了问题!
用过的:
$cmd = 'HOME='.getCWD().' && export HOME && libreoffice --headless ....';
exec($cmd);
Run Code Online (Sandbox Code Playgroud)
libreoffice然后在php脚本目录中创建了“ .config”和“ libreoffice”目录。显然,它必须可由Web服务器进程编写。
OpenOffice 需要一个用户目录。由于您尝试通过 Web 服务器调用 OpenOffice,因此您必须授予相应用户写入权限。例如,在 Debian 上,这意味着允许www-data写入/var/www/.openoffice.org/:
mkdir /var/www/.openoffice.org
chown www-data /var/www/.openoffice.org
Run Code Online (Sandbox Code Playgroud)