Apache/PHP + LibreOffice
Posted
技术标签:
【中文标题】Apache/PHP + LibreOffice【英文标题】: 【发布时间】:2012-05-16 12:24:25 【问题描述】:我已经在我的 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 运行它,以及我该如何解决这个问题?
【问题讨论】:
你想通过php制作pdf吗?$folder
输出文件夹有哪些权限?
【参考方案1】:
作为从命令行运行的替代方案,您是否考虑过使用PUNO PHP 包装器运行 UNO(COM 的 Open/Libre Office 替代方案)。这样就不用担心权限问题了
【讨论】:
【参考方案2】:另见Universal Network Objects (UNO):有 Python、Java 等使用它的桥梁。有一些应用程序可以简化转换的使用,请参阅Docvert 和 JODConverter(jODconverter 和 pyODconverter)。
所有这些都可以被 PHP 调用为 web-service 或 exec。
【讨论】:
以上是关于Apache/PHP + LibreOffice的主要内容,如果未能解决你的问题,请参考以下文章
apache配置 php中没有php5apache2_4.dll