веб-сервисы Amazon — PHP на Ubuntu AWS Server: сбой POPEN с «sh: & lt; command & gt ;: not found»

Я перевожу свой текущий веб-сайт в Amazon AWS с общего сервера Red Hat. Когда я переместил свой рабочий код, я начал получать ошибку в моем вызове popen.

Ошибка: sh: 1: <command>: not found

Я нашел подобный вопрос 5 лет назад, но никогда не было действительно хорошего ответа. попен терпит неудачу с "ш: <команда>: не найдено"

Я использую XAMPP на своем ноутбуке с Ubuntu 14.04 для локального тестового стенда, и проблема там не возникает, но на моем экземпляре AWS. Использование Ubuntu 14.04lts с php5 и apache2 на экземпляре.

Я подозреваю, что это может быть настройка PHP или проблема с путями, но все, что я пробовал, провалилось, какие-либо предложения?

output = shell_exec('echo abc'); работал нормально.

Вот еще немного информации: Мой код:

if (file_exists(SitePATH."/solver/dkcube")){
//echo "Executable is there <br />";
error_reporting(E_ALL);
$handle = popen("$runvariable 2>&1","r");
echo "Line 1: '$handle'; ".gettype($handle). "<br />";
$contents = stream_get_contents($handle);
echo "Line 2: $contents"; pclose($handle);

Переменная переменной в основном представляет собой dkcube из file_exists с некоторыми переменными прохода. Эхо для Линии 2 является

«Строка 2: sh: 1: / var / www / html / solver / dkcube: not found»

Надеюсь, это даст вам больше информации.

Я попробовал sudo -H -u php_user sh -c 'content of runvariable here' и он вернул ту же ошибку: sh: 1: /var/www/html/solver/dkcube: not found

1

Решение

Благодаря фактическим вопросам Дж.Ф. Себастьяна он дал мне лакомый кусочек, необходимый для решения моей проблемы. Используя его sudo -H -u php_user sh -c 'content of runvariable here' вопрос, я определил, что это проблема Ubuntu, а не проблема PHP.

Основной причиной моей проблемы было то, что я запускал 32-битный исполняемый файл в 64-битной операционной системе и не имел правильных библиотек для моего исполняемого файла.

Сначала я должен был изменить sh с тире на bash, как показано здесь: исходная команда не найдена в оболочке sh

Затем мне пришлось установить правильные библиотеки, как указано здесь: https://unix.stackexchange.com/questions/75054/ldd-tells-me-my-app-is-not-a-dynamic-executable

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]