Instalé libreoffice-headless y puedo convertir documentos cuando inicie sesión en el shell como usuario normal.
[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
Ahora deseo hacer lo mismo, pero usando PHP y, por lo tanto, como usuario apache, sin embargo, lo siguiente no convertirá el archivo.
<?php
shell_exec('/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc');
?>
En un intento de solucionar problemas, ejecuté el mismo comando a través del shell que el usuario apache, pero aún así no convertirá el archivo:
[root@desktop ~]# su -s /bin/sh apache -c "/usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc"
Apache, a diferencia de los usuarios normales, no tiene un hogar, y recuerdo haber escuchado que podría necesitar especificar un hogar usando HOME=/tmp/ayb
antes de intentar convertir, pero no ayuda (creo que cuando uso CentOS 5.8 y probablemente una versión diferente de LibreOffice, lo hice, pero no estoy seguro).
¿Cómo convierto un archivo a PDF usando libreoffice cuando lo ejecuto como usuario apache?
Sistema instalado
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 ...
funciona? ¿Paraexport
qué sirve y por qué noHOME=/tmp/ayb; libreoffice --headless....
funciona?