2013-06-30 2 views
4

У меня есть несколько игровых серверов, которые мне нужны для запуска сценариев оболочки для частотности. Я пытаюсь понять, как запустить эти скрипты с помощью веб-страницы на том же сервере. Это выделенный сервер Ubuntu.Выполнение скриптов .sh через PHP

Файлы веб-сайта расположены через /var/www/.... Файлы .sh, которые мне нужно запустить вручную, находятся в /home/amservers/.../start.sh.

Я посмотрел на другие ответы, и я до сих пор не могу понять это. Как найти файлы и сохранить их, а затем запустить exec()?

ответ

9

Вы могли бы просто использовать функцию shell_exec() в PHP:

http://php.net/manual/en/function.shell-exec.php

shell_exec('sh script.sh'); 

И если вы хотите использовать переменные ($ 1, $ 2 и т.д. в Баш), вы можете просто набрать:

shell_exec('sh script.sh variable1 variable2'); 
+0

Как найти файлы? Является ли путь для оболочки абсолютным – devs

+0

Вы можете просто ввести /, а затем ваш в каталоге /. Оттуда вы можете пойти как /var/www/yourShellScript.sh –

0

Вы можете использовать либо абсолютный путь, либо относительный путь. Для относительных путей текущий каталог обычно является файлами PHP. Если вы не можете получить доступ к своим скриптам даже с абсолютным путем, может возникнуть проблема с правами доступа к файловой системе. Имейте в виду, что скрипты PHP обычно выполняются как учетная запись пользователя (системы) веб-сервера.

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

0

, если вы хотите, чтобы проверить вывод скрипта в браузере, чем вы можете просто использовать

var_dump (shell_exec («ш script.sh»));

или

var_dump (shell_exec ('ш script.sh переменная1 переменная2'));

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