0

我已经在我的 CentOS 机器上安装了 LibreOffice RPMS(已经尝试过 3.5.3 和 3.4.6),并且我试图让 PHP 运行一个调用 LibreOffice 的 shell 脚本。在 shell 脚本中,它运行执行这一行:

/opt/libreoffice3.4/program/soffice --headless -convert-to $extension.pdf "$1" -outdir $folder

但是,此命令将导致出现以下消息:

./createpdf.sh: line 8: /opt/libreoffice3.4/program/soffice: Permission denied

线路本身很好。如果我回显它并在 SSH 中手动运行它,它工作正常。这很可能是因为我以不同的用户身份运行它(注意:不是作为安装它的用户,也不是作为 root),具有不同的权限。

尽管我很绝望,但我已经尝试将整个 libreoffice 文件夹更改为 777,并尝试让“apache”用户成为所有者。那里没有运气。有没有人知道为什么它不让 apache 运行它,以及我该如何解决这个问题?

4

2 回答 2

1

作为从命令行运行的替代方案,您是否考虑过使用PUNO PHP 包装器运行 UNO(COM 的 Open/Libre Office 替代方案)。这样,您无需担心权限

于 2012-05-16T12:34:38.360 回答
1

另请参阅通用网络对象 (UNO):有 Python、Java 等可供使用的桥接器。有一些应用程序可以简化转换的使用,请参阅DocvertJODConverterjODconverterpyODconverter)。

所有这些都可以被 PHP 调用为 web-service 或 exec。

于 2012-11-11T20:33:11.307 回答