Я пытаюсь выполнить команду через shell_exec
в php. Но я получаю сообщение об ошибке.Как выполнить скрипт Groovy в PHP
Мой код:
shell_exec('groovy log_analyser1.groovy').
Но я получаю эту ошибку:
sh: groovy: command not found
Я пытаюсь выполнить команду через shell_exec
в php. Но я получаю сообщение об ошибке.Как выполнить скрипт Groovy в PHP
Мой код:
shell_exec('groovy log_analyser1.groovy').
Но я получаю эту ошибку:
sh: groovy: command not found
Помещенный заводной установка где-то вменяемый (/usr/local
или /opt
или что-то ваша команда ОПС позволяет), а затем вызвать заводной с абсолютным путем.
Поскольку у вас в настоящее время установлены пользователи root
~
, другие пользователи (например, пользователи, с которыми работает ваш php/httpd) не имеют доступа к нему (по уважительным причинам).
Даже если вы используете того же пользователя, что и ваш php/httpd, и используете GVM там, вам будет сложно сделать это правильно, поскольку GVM полагается на некоторые скрипты для запуска. Так что просто скопируйте из своих файлов GVM (~/.gvm/groovy/<version>
), где пользователям легко получить к нему доступ.
Отлично. Теперь я получаю эту ошибку –
groovy: JAVA_HOME не установлен и не может найти javac для вывода местоположения, пожалуйста, установите JAVA_HOME. –
ну, это в значительной степени говорит обо всем: правильно настройте среду Java. если вы не можете этого сделать, то создайте процесс с помощью этого env var set. – cfrick
Наконец-то появился выход. Я переместил 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;
Если cfrick помог вам, примите его ответ. – Opal
У вас установленный groovy? (иначе запустить это из терминала: sudo apt-get install groovy) – henrik
В терминале работает нормально. Когда я пытаюсь выполнить ту же команду в php. Это не работает. Я получаю эту ошибку. sh: groovy: команда не найдена –
Ужасно на вашем пути? Попробуйте использовать полный путь для вызова groovy. – cakan