Имам проблеми с използването на 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