Как перезагрузить удаленный выделенный сервер, используя скрипт php или клиент оболочки php? - PullRequest
0 голосов
/ 19 марта 2012

Я ищу способ перезагрузить удаленный выделенный сервер с помощью php.Во время исследования Google я читал о клиенте оболочки Python.Есть ли что-то похожее в php?

Можно ли использовать php для перезагрузки удаленного сервера с помощью команд оболочки?и что для этого нужно?

Ответы [ 3 ]

0 голосов
/ 20 марта 2012

Я предполагаю, что вам нужна веб-оболочка, реализованная в php. В этом случае вы можете посмотреть на это http://ajaxshell.sourceforge.net/ а это http://sourceforge.net/projects/ajaxshell/

Используя эти скрипты, вы можете запускать произвольные команды оболочки. Но помни 2 вещи. 1. защитить паролем приложение веб-оболочки 2. Оболочка будет запускать команды как пользователь apache. Если вы хотите перезагрузить сервер, apache может потребоваться права root. Запуск apache от имени root обычно считается плохой практикой.

0 голосов
/ 26 мая 2016

Существует оболочка, эквивалентная PHP.Недавно я опубликовал проект, который позволяет PHP получать и взаимодействовать с реальной оболочкой Bash, вы даже можете легко получить оболочку с root-правами.Получите это здесь: https://github.com/merlinthemagic/MTS

После загрузки вы просто используете следующий код:

//if PHP is running on the server you want to reboot:
$shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);

//if PHP needs to SSH to the server first
$shell = \MTS\Factories::getDevices()->getRemoteHost('ip_address')->getShellBySsh('username', 'password');

$strCmd = "reboot";
$return1  = $shell->exeCmd($strCmd);
0 голосов
/ 19 марта 2012

Вы, вероятно, можете, используя exec (), passthru () и т. Д. Это хорошая идея, я не уверен: вам придется дать права на перезагрузку (я не знаю точно, но это почти root ...) вашему пользователю php.

Просто чтобы быть уверенным, что вы хотите сделать, это вызвать веб-страницу, которая перезагрузит ваш сервер, или это сложнее?

...