Я сделал файл test.php в (/opt/lampp/htdocs/xampp/test.php)
содержащий код
$data = shell_exec("sudo php -v");
var_dump($data);
но это дает мне результат НОЛЬ
Я использую PHP 5.6.11-1ubuntu3.1 (cli), поэтому я также добавил строку в файл / etc / sudoers
www-data ALL=NOPASSWD: /opt/lampp/htdocs/xampp/test.php
Я также попытался, добавив
www-data ALL=NOPASSWD: ALL
Но ничего не работает. Пожалуйста помоги
Отредактируйте файл sudoers (с помощью visudo
) и добавьте правило, позволяющее пользователю веб-сервера запускать команду без пароля. Например:
www-data ALL=NOPASSWD: /path/to/script
Это позволит конкретному пользователю звонить sudo
на этом конкретном сценарии без запроса пароля.
Попробуйте указать полный путь к бинарному файлу php. /usr/bin/php
, Если вы не знаете, найдите его с помощью: which php
$data = shell_exec("/usr/bin/php -v");
var_dump($data);
Вы также можете проверить свой php.ini ограничить доступный набор команд?
; When safe_mode is on, only executables located in the safe_mode_exec_dir
; will be allowed to be executed via the exec family of functions.
; http://php.net/safe-mode-exec-dir
safe_mode_exec_dir =
Вы должны изменить минимальный uid / gid для модуля mpm_itk:
$ cat /etc/apache2/modules.d/00_mpm_itk.conf
<IfDefine MPM_ITK>
LoadModule mpm_itk_module modules/mpm_itk.so
# LimitUIDRange 1000 2000
# LimitGIDRange 1000 2000
LimitUIDRange 0 2000
LimitGIDRange 0 2000
</IfDefine>