Я пытаюсь добавить конвертацию SVG в .png в свое приложение Yii, используя растеризированную библиотеку Batik. В настоящее время я работаю локально на Mac с OSX 10.6.7, PHP 5.3.4 и Java 1.6.0_24.
Когда я запускаю скрипт PHP, который имеет дело с преобразованием, используя ...
$output = shell_exec(java -jar batik/batik-rasterizer.jar -m image/png -d pdf_temp/file.png -w 800 pdf_temp/file.svg)
Сбой батика с (бесполезной) ошибкой:
About to transcode 1 SVG file(s)
Converting file.svg to pdf_temp/file.png ... file_1310581599.png
Error while converting SVG
Однако, используя ...
java -jar batik/batik-rasterizer.jar -m image/png -d pdf_temp/file.png -w 800 pdf_temp/file.svg
... в Терминале работает с лечением и сохраняет файл .png в каталоге / pdf_temp / вместе с исходным .svg
Так что же такого в среде PHP / apache, которая вызывает сбой Batik, когда с терминалом все в порядке?
EDIT:
После общения с некоторыми коллегами мы думаем, что это может быть связано с тем, что Java должна запускаться с правами root - что она делает из терминала, но не внутри веб-сервера.
Добавление ...
2>&1 1> /dev/null
Моей команде Batik shell_exec () выдает следующую ошибку:
Exception in thread "main" java.lang.InternalError: Can't connect to window server - not enough permissions.
Есть какие-нибудь идеи относительно того, как я могу запустить Java с правами root в среде веб-сервера? Или позволить ему выполнять нужные мне функции?