我安装了libreoffice-headless,并且可以以普通用户身份登录到Shell时可以转换文档。
[root@desktop ~]# yum install libreoffice-headless
[root@desktop ~]# yum install libreoffice-writer
[root@desktop ~]# su NotionCommotion
sh-4.1$ /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
convert /tmp/ayb/document_34.doc -> /tmp/ayb/document_34.pdf using writer_pdf_Export
我现在希望做同样的事情,但是使用PHP,因此作为用户apache,但是,以下内容不会转换文件。
<?php
shell_exec('/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc');
?>
为了进行故障排除,我通过外壳程序以与用户apache相同的命令运行,但仍然无法转换文件:
[root@desktop ~]# su -s /bin/sh apache -c "/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc"
Apache与普通用户不同,它没有家,我回想起HOME=/tmp/ayb
在尝试进行转换之前可能需要指定使用的家,但这无济于事(我认为,当使用CentOS 5.8和LibreOffice的其他版本时,做到了,但不确定)。
以用户apache身份运行时,如何使用libreoffice将文件转换为PDF?
已安装系统:
CentOS 6.4
httpd.x86_64 2.2.15-28.el6.centos @updates
libreoffice-headless.x86_64 1:3.4.5.2-16.1.el6_3 @base
export HOME=/tmp/ayb libreoffice --headless ...
?目的是什么export
,为什么不起作用HOME=/tmp/ayb; libreoffice --headless....
?