php exec() возвращает пустое значение

В настоящее время моя цель состоит в том, чтобы увидеть результат работы PHP exec(), но получить пустое значение. Я использую ведение журнала firephp (расширение firebug) и не могу понять, почему он пуст.

полный код здесь: https://github.com/MattMcFarland/ninja-forms-uploads-custom/blob/dev/uploads-custom.php

Форма здесь: http://www.hvac-hacks.com/?page_id=1383&preview=true&form_id=96

            exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$ouput);
            fb($output);
            curl_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$output);
            fb($output);
            $output = shell_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name);
            fb($output);

В настоящее время консоль показывает пустым для каждого используемого мной метода exec. На самом деле не уверен, что делать, я в полной растерянности.

Консоль также работает, так как она показывает другие fb(); вещи. Команды exec показывают пустую строку с номером 3 перед ним, указывая на пустой возврат 3 раза.

Есть идеи?

2 ответа

Решение

Проблема была проблема с разрешениями. пользователю не разрешено использовать BASH.

Пришлось изменить bin/false на bin/bash в /etc/passwd для пользователя apache.

В ретроспективе может быть лучше просто добавить bin/mogrify

exec будет пустым, если не сможет найти команду, которую вы пытаетесь запустить. Вы должны сообщить php, где он может найти mogrify, используя putenv. В моем случае путь mogrify - это /opt/local/bin. Таким образом, следующий код будет работать, вам просто нужно будет использовать правильный путь для вашей среды.

putenv("PATH=/opt/local/bin");
exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$ouput);
fb($output);
curl_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$output);
fb($output);
$output = shell_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name);
fb($output);

Надеюсь, это поможет.

Другие вопросы по тегам