OpenOffice“Java 框架”函数 createSettingsDocument(elements.cxx)中出现错误

OpenOffice“Java 框架”函数 createSettingsDocument(elements.cxx)中出现错误

我在 RedHad 版本的 Linux 上使用 openoffice.org 时遇到了问题。

OpenOffice 已成功安装,如果我以 root 身份从命令行运行以下命令,我将获得:

[root@s15548792 ~]# /usr/bin/ooffice "StarOffice.ServiceManager" -headless &
[1] 17321
[root@s15548792 ~]# ps | grep soffice.bin
17331 pts/0    00:00:00 soffice.bin

当我更改用户 apache 时,我得到以下信息:

[root@s15548792 ~]# su apache
bash-3.2$ /usr/bin/ooffice "StarOffice.ServiceManager" -headless &
[1] 17341
bash-3.2$ [Java framework] Error in function createSettingsDocument (elements.cxx).
javaldx failed!

[1]+  Done                    /usr/bin/ooffice "StarOffice.ServiceManager" -headless
bash-3.2$ ps -u `whoami` | grep soffice.bin
bash-3.2$

这显然是用户问题,但在我看来,所有 OpenOffice.org 文件都归 apache 所有。我已经搜索了好几天,主要的解决方案似乎是将 ~/.config 的所有者更改为 apache,但我不知道该怎么做。

如果它有帮助,当我使用 php 运行命令时,我会得到以下输出

[0] => Trying to open office... . /usr/bin/ooffice
[1] => [Java framework] Error in function createSettingsDocument (elements.cxx).
[2] => javaldx failed!
[3] => creation of executable memory area failed: Permission denied
[4] => creation of executable memory area failed: Permission denied
[5] => creation of executable memory area failed: Permission denied
[6] => creation of executable memory area failed: Permission denied
[7] => creation of executable memory area failed: Permission denied
[8] => creation of executable memory area failed: Permission denied
[9] => timeout - office could not be started

文件 /usr/bin/ooffice 还包含以下内容:

#!/bin/sh
exec openoffice.org "$@"

如能提供任何帮助我将非常感激。

答案1

我遇到了类似的问题(并带有类似的消息):

在我们的服务器上,nginx 在用户 下运行www-data。当我们运行 OpenOffice (或我们使用的任何其他应用程序) 时,出于安全原因,我们在用户 下运行它www-apps(用户www-data可以使用 sudo www-apps)。

不幸的是,我得到了这个:

www-data@server:/tmp$ sudo -u www-apps /bin/bash
www-apps@server:/tmp$ oowriter-headless-nologo-norecovery-p report-8846.odt
[Java 框架] 函数 createSettingsDocument (elements.cxx) 中出现错误。
javaldx 失败!
创建可执行内存区域失败:权限被拒绝

问题是我需要运行sudo带有-H参数的命令来将主目录从 更改为/home/www-data/home/www-apps然后它就像魔法一样起作用了。

答案2

您可能已经修复了这个问题,但如果没有,请通过执行以下操作找出用户 apache 的主目录cat /etc/passwd | grep apache(主目录将是该行中的倒数第二个字段)。将此目录设置为用户 apache 可写入。就我而言,这解决了问题(虽然我没有使用 apache,而是使用 lighttpd,在这种情况下,我必须对 /var/www/ 执行此操作并将其设置为可由 www-data 写入)。

但是,我是服务器管理的新手,不知道这是否会使您的 Web 服务器不安全。

相关内容