Невозможно запустить двоичный файл go под apache через PHP shell_exec - PullRequest
0 голосов
/ 13 июля 2020

У меня проблема, и я не понимаю, что происходит. Я в основном использую этот PHP скрипт, чтобы попробовать запустить двоичный go:

<?php

shell_exec('/go/bin/x -arg -arg etc');

Если я запустил этот PHP файл через командную строку, он заработает. Если я запускаю его прямо в браузере (он находится под www), он не работает. Никаких ошибок.

cli работает как root, а apache как www-data. Я установил разрешения на 0777 для /go/bin/x, а также изменил владельца / группу на www-data. По-прежнему ничего.

Что может вызвать такое поведение?

Также обратите внимание, что shell_exec работает, но пока я запускал только другие php файлы.

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Кого это может касаться.

У меня такая же проблема, что я не могу запустить shell_exec / exe c через веб-сайт, даже если они хорошо работали в терминале.

См. Журнал:

[13-Jul-2020 19:57:23 UTC] PHP Warning: shell_exec() has been disabled for security reasons in /...test_script.php on line 3

Случай 1 : Проверить все php .ini, где disable_function не содержит «shell_exe c» или «exe c»

$ sudo find / -name "php.ini"

$ sudo cat <path_to_php.ini> | grep disable_functions

// disable_functions = <<= This is OK

// disable_functions = "shell_exec, exec, system...." <<= They are disabled

Удалите функцию, которую хотите использовать. Не забудьте перезапустить сервер.

Случай 2 : Если disable_functions все пустые для всех php .ini. Проверьте свой PHP -FPM на вашем хостинге через Cpanel. Go в «Multi PHP Manager» из Cpanel и проверьте статус PHP -FPM в своем домене. Выключите его, и вы сможете запустить shell_exe c ();

введите описание изображения здесь

0 голосов
/ 13 июля 2020

Не знаю, как я не думал об этом раньше ... Проблема заключалась в том, что 1 из входных аргументов содержал расположение текстового файла, а apache не имел прав на чтение файла. Ошибка была в /var/log/apache2/error.log

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...