Вызов файла .jar не работает в php shell_exec linux, но работает в cmd и windows - PullRequest
0 голосов
/ 29 мая 2018

Я работаю над сценарием, который вызывает 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 или пользователем?

1 Ответ

0 голосов
/ 30 мая 2018

Проблема была исправлена.Эта проблема была связана с графическим интерфейсом 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]
...