Изпълнение на команда oowriter без глава с помощта на php exec() не се изпълнява

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


person leejmurphy    schedule 14.10.2012    source източник
comment
Звучи като проблем с разрешението. Кой изпълнява exec() и с какви разрешения?   -  person BudwiseЯ    schedule 15.10.2012
comment
@budwiser Не съм посочил нито един потребител, така че мога само да предположа, че потребителят на apache изпълнява exec() с разрешения по подразбиране   -  person leejmurphy    schedule 15.10.2012
comment
Опитайте да chmod 777 /var/data/uploads/ -R (за целите на отстраняването на грешки) само веднъж, за да видите дали имаме работа с потребителски права.   -  person BudwiseЯ    schedule 15.10.2012
comment
@budwiser /var/data/uploads вече е настроен на 777 и за информация мога успешно да изпълнявам команди на imagemagick към файлове в тази директория с помощта на exec() и потребител на apache   -  person leejmurphy    schedule 15.10.2012
comment
За да тествате това, е възможно да използвате sudo, като използвате apache, за да тествате командата - sudo apache command. Също така - можете да sudo в exec: exec('echo 'password' | sudo -S leemurphy comand'); Това трябва да означава, че можете да изпълните командата като root (за тестване) - след това можете да опитате да я настроите на нормален потребител (създайте потребител, наречен "runoffice")   -  person Boz    schedule 21.10.2012