Batik ラスタライズ ライブラリを使用して、SVG から .png への変換を Yii アプリに追加しようとしています。現在、OSX 10.6.7、PHP 5.3.4、および Java 1.6.0_24 を実行している Mac でローカルに作業しています。
変換を処理する PHP スクリプトを実行すると、...
$output = shell_exec(java -jar batik/batik-rasterizer.jar -m image/png -d pdf_temp/file.png -w 800 pdf_temp/file.svg)
Batik は (役に立たない) エラーで失敗します:
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 ファイルを元の .svg とともに /pdf_temp/ ディレクトリに保存します
では、ターミナルが正常なときに Batik が失敗する原因となっている PHP/apache 環境の違いは何でしょうか?
編集:
何人かの同僚と話し合った結果、Java を root として実行する必要があるという事実が考えられます。これは、ターミナルから実行しますが、Web サーバー内では実行しません。
追加中...
2>&1 1> /dev/null
私のBatik shell_exec() コマンドには、次のエラーが表示されます:
Exception in thread "main" java.lang.InternalError: Can't connect to window server - not enough permissions.
Web サーバー環境で Java を root として実行する方法についてのアイデアはありますか? または、必要な機能を実行できるようにしますか?