2015-03-27 5 views
-2

Я пытаюсь выполнить команду через shell_exec в php. Но я получаю сообщение об ошибке.Как выполнить скрипт Groovy в PHP

Мой код:

shell_exec('groovy log_analyser1.groovy'). 

Но я получаю эту ошибку:

sh: groovy: command not found 
+1

У вас установленный groovy? (иначе запустить это из терминала: sudo apt-get install groovy) – henrik

+0

В терминале работает нормально. Когда я пытаюсь выполнить ту же команду в php. Это не работает. Я получаю эту ошибку. sh: groovy: команда не найдена –

+0

Ужасно на вашем пути? Попробуйте использовать полный путь для вызова groovy. – cakan

ответ

0

Помещенный заводной установка где-то вменяемый (/usr/local или /opt или что-то ваша команда ОПС позволяет), а затем вызвать заводной с абсолютным путем.

Поскольку у вас в настоящее время установлены пользователи root~, другие пользователи (например, пользователи, с которыми работает ваш php/httpd) не имеют доступа к нему (по уважительным причинам).

Даже если вы используете того же пользователя, что и ваш php/httpd, и используете GVM там, вам будет сложно сделать это правильно, поскольку GVM полагается на некоторые скрипты для запуска. Так что просто скопируйте из своих файлов GVM (~/.gvm/groovy/<version>), где пользователям легко получить к нему доступ.

+0

Отлично. Теперь я получаю эту ошибку –

+0

groovy: JAVA_HOME не установлен и не может найти javac для вывода местоположения, пожалуйста, установите JAVA_HOME. –

+0

ну, это в значительной степени говорит обо всем: правильно настройте среду Java. если вы не можете этого сделать, то создайте процесс с помощью этого env var set. – cfrick

0

Наконец-то появился выход. Я переместил groovy каталог из/root в/usr/share /. Затем дал groovy путь в моем php-файле. Теперь он работает отлично. Чтобы установить переменную среды java.

Я поставил этот putenv("JAVA_HOME=/usr/share/java/jdk1.7.0_03/");

$result = shell_exec('/usr/share/groovy/2.4.3/bin/groovy log_analyser1.groovy'); 

Спасибо Cfrick за помощь. echo $ result;

+0

Если cfrick помог вам, примите его ответ. – Opal