Выполнить скрипт Bash на другом сервере через PHP - PullRequest
1 голос
/ 03 июня 2011

Мне кажется, я понимаю, как выполнить bash-скрипт на том же сервере.

exec('./myshell.sh');

Совершенно новое для такого рода вещей, так что извините, если это совершенно неправильно.Но мне интересно, как я мог бы выполнить скрипт bash на другом сервере?Причина в том, что я хочу, чтобы bash-скрипт выполнял некоторые вещи на моем выделенном сервере Minecraft, но наш сайт размещен на другом.

Спасибо за любую помощь заранее.

Ответы [ 5 ]

2 голосов
/ 03 июня 2011

Что ж, я вижу два способа сделать это:

  1. Сделайте ваше php-приложение ssh на сервере minecraft и выполните команду , как показано здесь .
  2. Поместите ваше php-приложение на удаленный сервер.

Я думаю, что выбор 1 будет тот, с которым вы должны пойти.Если вы сделаете это, вам также нужно будет выполнить руководство по Moravec.net , чтобы разрешить вход в удаленную систему без пароля.

1 голос
/ 03 июня 2011

Вам обязательно нужно запускать события на вашем сервере minecraft по требованию вместо того, чтобы регулярно проверять свой веб-сервер?Возможно, стоит использовать cronjob на сервере minecraft и сделать так, чтобы он опрашивал веб-сервер через wget на предмет того, должен ли он выполнять этот скрипт bash.

Это обеспечивает изоляцию вашего веб-сервера и сервера minecraft и удерживает васот необходимости установки дополнительных сервисов, таких как веб-сервер (который потребляет кучу ресурсов, которые вам нужны для программы выделенного сервера minecraft) или написания собственного микро-сокет-сервера для прослушивания запроса на запуск скрипта.

1 голос
/ 03 июня 2011

Вы можете использовать собственные PHP * ssh2_exec после подключения к подготовленному удаленному серверу.

Если это расширение недоступно, вы, конечно, можете просто сделать:

exec('ssh user@server.name ./myshell.sh');

(Где предпочтительнее настройка авторизации сертификата.)

0 голосов
/ 03 июня 2011

Существует следующая опция:

http://php.net/manual/en/book.ssh2.php

Вероятно, это ваша худшая ставка, но она сработает.Я бы, однако, предложил RESTful тип сервиса.У вас есть веб-скрипт, который запускается на вашем "сервере майнкрафт", и просто отправьте запрос этому скрипту, чтобы выполнить нужный вам bash-файл.Вы можете применить это к чему угодно, но веб-сервис, вероятно, самый простой.

0 голосов
/ 03 июня 2011

Вы можете выполнить скрипт удаленной оболочки из вашей PHP-программы, используя ssh.

...