J'ai installé libreoffice headless sur un serveur freebsd avec apache afin de convertir des documents par programme (par exemple odt-> pdf). Cela fonctionne à partir de la ligne de commande! Mais mon objectif est de pouvoir le faire à partir de PHP. Cela exige que l'utilisateur Web (www) puisse exécuter libreoffice. Mais ce n'est pas possible.Exécution libreoffice à partir de php exec()
Lors de l'exécution LibreOffice comme mon propre utilisateur, je reçois:
%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 je tente la même commande en tant que root, il ne fonctionne pas. La même chose est le problème avec le www utilisateur de php:
sp# libreoffice --headless -convert-to pdf Litteraturundervisningogit.doc
javaPathHelper: not found
sp#
Le problème est que je ne reçois aucune information de LibreOffice, donc je ne sais pas pourquoi LibreOffice ne veut pas courir comme d'autres utilisateurs que le mien.
Ma question est: Comment donner à l'utilisateur www l'autorisation d'exécuter libreoffice via exec() en PHP?
Est-ce juste un problème de PATH? Qu'y a-t-il dans leurs '$ PATH' respectifs? – Wrikken
Vous avez testé par ligne de commande avec l'utilisateur root, '% sudo php program.php', que le client a la permission? –