Я использую PHP для запуска exec () над сценарием, который выглядит следующим образом:
exec("pdftk xx.pdf fill_form xx.fdf output xx.pdf flatten");
Самое странное, что когда я захожу в ssh и ввожу команду вручную - все работает нормально!это выводит 224 КБ PDF.но когда я использую команду exec (), получаются только первые 36k скрипта.(я проверил - первые 36k хорошего файла идентичны плохому файлу)
нет, вот странная вещь - это работало нормально с exec (), пока я не добавил еще несколько переменных в файл fdf, делаяэто дольше.я думал, что это проблема с fdf из-за новых данных - но почему этот процесс работает нормально из ssh?
update: также я попытался запустить php -f test.php (который только что имел один execлиния в нем).что выводит весь файл правильно.но даже если я перейду к http://mydomain.com/test.php, я получу только часть файла.
сценарий не работает по тайм-ауту, потому что я заставляю его выводить что-то после команды exec (), и он работает нормально.
это не может быть проблема с разрешениями (ssh входит в систему как root), потому что он все еще может записать файл
также - когда я пытаюсь получить значение возврата или выхода из execили passthru, я ничего не получаю.возвращаемое значение всегда равно 0.
обновление: в журналах ошибок apache я получаю
[Пт 17 сентября, 20:00:57 2010] [ошибка] Необработанное исключение Java: [Пт17 сентября 20:00:57 2010] [ошибка] java.lang.OutOfMemoryError [Пт 17 сентября 20:00:57 2010] [ошибка] <>
я изменил php_ini с 32M до 64M - все еще получаюЭто.учитывая, что это все крошечные файлы, я не думаю, что это все.но сможет ли PHP ограничить память дочернего процесса таким образом?где-то еще есть настройки?
help!