У меня возникают проблемы с использованием oowriter для преобразования документа в pdf с помощью php exec()
. Строка, которую я запускаю ниже, отлично работает в CLI, но не в php с использованием exec().
$stdin = "/usr/bin/oowriter --headless --convert-to pdf -outdir /var/data/uploads/ /var/data/uploads/lorem.docx";
exec($stdin,$stdout,$return_int);
$stdout
возвращает пустой Array
, а $return_int
возвращает 0
.
Я искал вокруг, и единственным возможным решением, которое я смог найти, было добавление пути к oowriter (что, как вы можете видеть, я сделал). Есть ли проблема с разрешениями при запуске этой команды от имени пользователя apache? Есть несколько сообщений о том, что exec() вообще не работает, но я могу успешно запускать команды для imagemagick, используя этот метод. Поэтому мне кажется, что это проблема конфигурации конкретного приложения с openoffice.
Похоже, что это дубликат следующего, но ответы не были опубликованы:
невозможно запустить oowriter как веб-пользователь
К вашему сведению, я использую CentOS V6.1 и PHP v5.3.3. Спасибо.
exec()
и с какими разрешениями? - person BudwiseЯ   schedule 15.10.2012chmod 777 /var/data/uploads/ -R
(в целях отладки) хотя бы один раз, чтобы увидеть, имеем ли мы дело с правами пользователя. - person BudwiseЯ   schedule 15.10.2012/var/data/uploads
уже установлено значение 777, и, к вашему сведению, я могу успешно выполнять команды imagemagick для файлов в этом каталоге, используя exec() и пользователя apache. - person leejmurphy   schedule 15.10.2012sudo apache command
. Кроме того, вы можете sudo в exec :exec('echo 'password' | sudo -S leemurphy comand');
Это должно означать, что вы можете запустить команду от имени пользователя root (для проверки) - тогда вы можете попробовать настроить ее для обычного пользователя (создайте пользователя с именем «runoffice») - person Boz   schedule 21.10.2012