У меня небольшая проблема с функцией shell_exec.
То, что я пытаюсь сделать, это перезапустить сервер Linux, нажав на кнопку. Однако я не могу заставить команду работать.
Это команда, которую я пытаюсь использовать:
shell_exec('sudo sbin/shutdown -r now');
Я читал об этой проблеме уже несколько часов и перепробовал все, что смог найти, но безрезультатно.
Итак, вот что я попробовал:
Прежде всего, я проверил, что в php.ini нет строки, которая не позволяла бы мне использовать команду.
Во-вторых, я добавил эту строку в / etc / sudoers
%www-data ALL=NOPASSWD: /sbin/shutdown
Когда это тоже не сработало, я также создал новый файл в etc / sudoers.d / и написал там: %users ALL=NOPASSWD: /sbin/shutdown
Также я не знаю, актуально это или нет, но когда я попытался запустить другой shell_exec в том же месте, он работает нормально (возвращает www-данные) как
echo shell_exec("whoami");
Но ничего не показывает, когда я добавляю sudo:
echo shell_exec("sudo whoami");
Так что да, если есть кто-нибудь, кто может сказать мне, что еще попробовать, я был бы признателен за это. Заранее спасибо. PS Это linux wheezy, что я пытаюсь заставить это работать, если это поможет.
Редактировать: даже nobody ALL=NOPASSWD: ALL
в файле sudoers, похоже, не работает мой shell_exec с sudo.
Я думаю, что это может быть опечатка.
Так должно быть shell_exec('sudo /sbin/shutdown -r now');
Использование относительных путей не будет работать каждый раз.
Других решений пока нет …