Libreoffice --headless weigert zu konvertieren, es sei denn, root, funktioniert nicht aus PHP-script
Läuft headless Ubuntu server 12.etwas.
root@server: chown www-data /my/path/-R
root@server: chgrp www-data /my/path/-R
root@server: chmod 755 /my/path/-R
root@server: libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
convert /my/path/foo.ppt -> /my/path/foo.pdf
Funktioniert wie ein Charme.
root@server: sudo -i -u www-data
$libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
convert /my/path/foo.ppt -> /my/path/foo.pdf
Error: Please reverify input parameters...
Verdammt.
root@server: sudo -i -u someotheruser
$libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
convert /my/path/foo.ppt -> /my/path/foo.pdf
Error: Please reverify input parameters...
Verdammt.
Jemand eine Idee? Versuchen, dies zu erforschen, nur verwirrt mich mehr. Ist das wohl ein bug oder irgendeine Abhängigkeit Macke?
- Ich habe das gleiche problem in Ubuntu 12.04, ich bin versucht, konvertieren Sie ods-Dateien in pdf-Dateien und es funktioniert nur mit sudo
- Wysocki - ich fand einen workaround, mit DocumentConverter.py mit LibreOffice ( artofsolving.com/opensource/pyodconverter ). Nur Problem ist, Sie müssen daemonize libreoffice, das ist irgendwie ein Schmerz in den Arsch und verursachten mir einige Probleme. Oh, und der daemon muss noch als root laufen.
- Ich habe auch eins:
$ sudo visudo
und ich habe diese Zeile:%users ALL=(ALL) NOPASSWD: libreoffice
nach, dasssudo libreoffice ...
ohne Passwort
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schließlich fand ich eine Antwort auf diese...
Hinzufügen:
den Anfang, also:
Dass hat bei mir auf CentOS 6.5, und wie shell_exec() in PHP.
HOME=/tmp libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
da Sie nur setzen der HOME-variable für einen Prozess.Wir hatten das selbe Problem beim Betrieb der
soffice
binäre headless (LibreOffice 5.0.5.2) in einem CloudFoundry (Diego) Behälter als Teil einer NodeJS-app.Scheint es neuere Versionen von
libreoffice
nicht erwarten, dass Sie ein beschreibbaresHOME
, sondern versuchen zu schreiben, umTMPDIR
.strace
zeigte:8349 mkdir("app/tmp", 0777) = -1 ENOENT (No such file or directory)
8349 open("app/tmp/lu8349pzgegi.tmp", O_RDWR|O_CREAT|O_EXCL, 0600) = -1 ENOENT (No such file or directory)
mit
TMPDIR=app/tmp
Wir behoben, indem wir
TMPDIR
auf ein Verzeichnis beschreibbar ist, die durch die App Prozess' Benutzer, alsoTMPDIR=/tmp
auf CloudFoundry:process.env.TMPDIR = "/tmp";
Ich hatte die gleiche Fehlermeldung, aber das problem war nicht root-Zugriff. Der Befehl war falsch.
Dieser arbeitete für mich, immer der text von einem doc in LibreOffice 4.2.:
(http://ask.libreoffice.org/en/question/14130/how-do-i-install-filters-for-the-soffice-command/)
soffice --headless --convert-to txt:"Text" ./*.docx
(ja, das ist für eine LibreOffice-Installation auf Kubuntu 14.10,apt-file
bestätigt, dasslibreoffice-common: /usr/bin/soffice
).Alles, was Sie tun müssen, erstellen Sie den Ordner "/var/www/.config". Wenn Sie versuchen, konvertieren Sie eine Datei unter www-data Benutzer von libreoffice benötigen ".config" dir im user-home-Verzeichnis. Aber libreoffice hat keine Berechtigungen zum erstellen solcher Ordner. Benutzer www-data Standard-home-Verzeichnis ist "/var/www". Also einfach Befehle ausführen:
War ich in der Lage, dieses Problem durch löschen Sie zuerst die Datei und dann läuft die Datei konvertieren. Sieht aus wie das überschreiben der Datei ist fehlgeschlagen aufgrund der Datei-Besitzer Fragen.
Ich würde werfen Sie einen Blick auf
http://dag.wieers.com/home-made/unoconv/
Sollte sich dieses tool besser geeignet, Ihre Dateien zu konvertieren richtig. Es steht auf der ubuntu-repos, also sollte es kein problem sein mit der installation.
Viel wie Jacek erklärte in seinem Kommentar, stellen Sie den Benutzer, den Sie versuchen, den Befehl ausführen als sudoer kein Kennwort erforderlich. Dann ändern Sie Ihre libreoffice-Befehl
Arbeitete für mich. Ich hatte das gleiche Problem.
Können Sie nicht laufen libreoffice soffice binäre mit www-data user. Verwenden Sie einen Benutzer mit sudo-Berechtigungen statt. Check my Gist https://gist.github.com/nathanielvarona/423bda9e4a8a4f0f9bbf#file-soffice-listener-sh
Und da wirst du diese in PHP. Nur einen Versuch geben, auch zu PHP-FPM. Installieren Sie es und ändern Sie dann die /etc/php5/fpm/pool.d/www.conf-Datei.
Vom
Zu:
Habe ich erfolgreich laufen diese in AWS EC2 und auch mit meiner VBox-VMs.