2014-08-28 6 views
1

У меня есть компания игрового сервера, и на моей панели управления у меня есть страница, где пользователь может нажать кнопку и установить мир на своем игровом сервере. Как это делается через скрипт на узле, который извлекает мир на свой игровой сервер.Запустить скрипт на удаленном сервере с помощью PHP

У меня есть несколько узлов, и панель размещена на моем веб-сервере. Как мне это сделать, когда они нажимают кнопку на веб-сайте, она не только публикует значение формы для скрипта, но также запускает скрипт?

Если вам нужно знать, сценарий выглядит следующим образом:

#!/bin/bash 

id=$SERVERID 

if [ "$WORLD" = "testworld" ]; then 
    cd "/home/minecraft/multicraft/servers/server$SERVERID" 
    unzip -nu "$JAR_DIR/maps/testworld.zip" 
fi 

exit 0 

переменного $ WORLD является то, что нужно послать в сценарий как POST из формы на панели управления.

Переменная $ SERVERID определяется в верхней части скрипта и также должна быть отправлена ​​из формы на панели управления. Панель управления уже определила эту переменную, ее просто нужно отправить в скрипт как часть формы.

Я совершенно уверен, как эхо переменной $ идентификатор_сервера на линии:

cd "/home/minecraft/multicraft/servers/server$SERVERID" 

Так помочь с этим также ценится.

Любые идеи?

Благодаря

+0

хорошо им смутило, если бы вы могли подытожить вопрос в одном предложении это было бы? –

ответ

0

Вы можете сохранить скрипт на сервере в качестве сценария оболочки, который принимает $ WORLD и $ идентификатор_сервера в качестве аргументов командной строки. После этого запустите этот скрипт с PHP с помощью команды exec или system.

Теперь ваш сценарий оболочки выглядит следующим образом.

#!/bin/bash 

id=$SERVERID 

if [ "$1" = "testworld" ]; then 
cd "/home/minecraft/multicraft/servers/server${2}" 
unzip -nu "$JAR_DIR/maps/testworld.zip" 
fi 

exit 0 

Сохраните его как, допустим, script.sh. Теперь позвоните ему из PHP.

exec("script.sh " . $WORLD . " " . $SERVERID); 

Надеюсь, у меня есть вопрос правильно, и это помогает.

+0

легче читать: 'exec (" script.sh $ WORLD $ SERVERID ");' –

+0

Привет, извините, вопрос был немного запутанным. Справка из секции сценария оболочки была очень полезна! Как работают {1} и {2}? Что они делают? В отношении php раздел php находится на веб-сервере, сценарий оболочки находится на другом сервере, поэтому php должен вызывать скрипт с удаленного сервера. – user3207807

+0

$ 1, $ 2 ... являются аргументами командной строки, заданными для скрипта. Например, в 'script.sh arg1 arg2 .. argN' $ 1 будет содержаться« arg1 », $ 2 будет содержать« arg2 »и так далее. – nisargjhaveri

Смежные вопросы