В настоящее время моя цель – использовать вывод 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 раза.
Есть идеи?
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);
Надеюсь, это поможет.
Проблема была связана с разрешениями. пользователю не разрешалось использовать BASH.
Необходимо было изменить bin / false на bin / bash в / etc / passwd для пользователя apache.
Оглядываясь назад, лучше бы просто добавить bin / mogrify