Вызов .jar файл не работает в php shell_exec linux, но он работает в cmd и windows

Я работаю над сценарием, который вызывает Java-приложение Imagej для обработки изображения, загруженного с веб-страницы PHP.
Проблема возникает, когда команда PHP shell_exec вызывает приложение.
Структура была протестирована в Windows и работала правильно.
Однако при попытке реализовать в linux shell_exec останавливает скрипт php и продолжает загружаться вечно. В том же shell_exec «java -version» работал, но вызов jar не работал.
команда shell_exec:

java -Xmx512m -Dplugins.dir="/var/www/ImageJ/" -jar "/var/www/ImageJ/ij.jar" -batch "/var/www/ImageJ/macros/[macrofile]" [imagefile.jpeg]

Однако, когда я пытаюсь запустить php из консоли, он запускается.

php > shell_exec("java -Xmx512m -Dplugins.dir=\"/var/www/ImageJ/\" -jar \"/var/www/ImageJ/ij.jar\" -batch \"/var/www/ImageJ/macros/melaTest.ijm\" F15274739305711.jpeg");

Может ли это быть проблема с php.ini или пользователем?

0

Решение

Проблема была исправлена.
Эта проблема была связана с графическим интерфейсом ImageJ, поэтому приложение ожидало запуска виртуального экрана из shell_exec.
Для решения этой проблемы был установлен Xvfb (sudo apt install xvfb), и команда из php shell_exec была вызвана из команды «xvfb-run» для выполнения на виртуальном сервере.

 xvfb-run -a -s "-screen 0 1024x768x24" java -Xmx512m -Dplugins.dir="/var/www/ImageJ/" -jar "/var/www/ImageJ/ij.jar" -batch "/var/www/ImageJ/macros/[macro...] [arg]
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]