Запуск безголового сервера Ubuntu 12.что-то.
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
Работает как шарм.
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...
Черт.
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...
Черт.
У кого-нибудь есть идея? Попытка исследовать это только смутила меня больше. Возможно, это ошибка или какая-то зависимость?
Я наконец нашел ответ на этот вопрос … Добавить:
export HOME=/tmp &&
к началу, так:
export HOME=/tmp && libreoffice --headless --convert-to pdf:writer_pdf_Export /my/path/foo.ppt --outdir /my/path
Это сработало для меня на CentOS 6.5 и как shell_exec () в PHP.
Мы столкнулись с такой же проблемой при запуске двунаправленного безголового (LibreOffice 5.0.5.2) в контейнере CloudFoundry (Diego) в составе приложения NodeJS.
Похоже, что более новые версии libreoffice
не ожидают возможности записи HOME
, но попробуйте написать TMPDIR
.
strace
показал: 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)
с TMPDIR=app/tmp
Мы исправили это, установив TMPDIR
в каталог, который можно записать пользователем приложения, т. TMPDIR=/tmp
на CloudFoundry:
process.env.TMPDIR = "/tmp";
Как сказал Яцек в своем комментарии, сделайте пользователя, которым вы пытаетесь выполнить команду, как sudoer, без пароля. Затем измените команду libreoffice, чтобы она была
sudo libreoffice <rest of command>
Работал для меня. Я была такая же проблема.
У меня была такая же ошибка, но проблема была не в корневом доступе. Команда была неправильной.
Это сработало для меня, получив текст из документа в LibreOffice 4.2 .:
soffice --headless --convert-to txt:Text file_to_convert.odt
( http://ask.libreoffice.org/en/question/14130/how-do-i-install-filters-for-the-soffice-command/ )
Вы не можете запустить libreoffice soffice двоичный с пользователем www-data. Вместо этого используйте пользователя с привилегиями sudo. Проверьте мой Gist https://gist.github.com/nathanielvarona/423bda9e4a8a4f0f9bbf#file-soffice-listener-sh
И так как вы собираетесь использовать это в PHP. Просто попробуйте PHP-FPM. Установите его, а затем измените файл /etc/php5/fpm/pool.d/www.conf.
Из
user = www-data group = www-data
Для того, чтобы:
user = ubuntu group = ubuntu
Я успешно запускаю это в AWS EC2, а также с VBox VM.
Я бы посмотрел
http://dag.wieers.com/home-made/unoconv/
Этот инструмент должен быть более подходящим для правильного преобразования ваших файлов. Он доступен в репозиториях ubuntu, поэтому проблем с установкой не должно быть.