He instalado libreoffice headless en un servidor freebsd con apache para convertir documentos programáticamente (por ejemplo, odt-> pdf). ¡Funciona desde la línea de comando! Pero mi objetivo es poder hacerlo desde php. Esto exige que el usuario de la web (www) pueda ejecutar libreoffice. Pero no puedo.Ejecutando libreoffice de php exec()
Cuando se ejecuta LibreOffice como mi propio usuario, me sale:
%libreoffice --headless -convert-to pdf Litteraturundervisningogit.doc
javaPathHelper: not found #This should not be a problem, says people on the net.
convert /usr/home/bundsgaard.net/www/jeppe/foredrag/Litteraturundervisningogit.doc ->
/usr/home/bundsgaard.net/www/jeppe/foredrag/Litteraturundervisningogit.pdf using writer_pdf_Export
%
Si intento el mismo comando como root, no funciona. Lo mismo es el problema con el www por el usuario de PHP:
sp# libreoffice --headless -convert-to pdf Litteraturundervisningogit.doc
javaPathHelper: not found
sp#
El problema es que no tengo ninguna información de LibreOffice, por lo tanto no sé qué LibreOffice no quiere que se ejecute como otros usuarios que mío.
Mi pregunta es: ¿Cómo otorgo permiso a www-user para ejecutar libreoffice via exec() en php?
es sólo un problema de ruta? ¿Qué hay en su respectivo '$ PATH'? – Wrikken
Has probado por línea de comandos con usuario root, '% sudo php program.php', que como cliente tiene permiso? –