2013-06-09 4 views
0

Я относительно новый на php, но в настоящее время у меня проблема.Запуск приложения-сервера из браузера (php)

Я изменил Mac OS X, чтобы запустить его на сервере, и я хотел бы иметь возможность запускать некоторые приложения на сервере с помощью веб-браузера. конечная идея - использовать кнопку, и когда я нажимаю на нее, она запускает приложение после теста (уже приложение?)

но прежде всего я начал маленький. Я создал этот HTML-страницу, содержащую скрипт:

<html> 
<body> 
<?php 
    print "hello word"; 
    $output=exec(" open /Applications/Cyberduck.app"); 
    print $output; 
?> 
</body> 
</html> 

Скрипт работает должным образом, когда я запускать в в командной строке, но когда я пытаюсь запустить его с веб-браузером, он ничего не делает в все (кроме записи «hello world»)

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

Я уверен, что мне не хватает чего-то совершенно очевидного, но я не нашел решения, просматривая интернет (я могу признать, что у меня, вероятно, недостаток словарного запаса, и мои исследовательские термины, возможно, не актуальны)

Спасибо за вашу помощь,

Марк

+0

Это потому, что команда ['exec'] (http://php.net/manual/en/function.exec.php) выполняет команду на запущенном сервере, а не на компьютере-посетителе. В противном случае это будет серьезная проблема безопасности. – Joe

+1

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

ответ

0

проблема заключается в том, что ваш веб-сервер не работает, как и того же пользователя и привилегий, как пользователь GUI. Вы можете решить это, используя su или sudo для запуска в качестве другого пользователя. Но учтите, что при вводе пароля будет выведен пароль, с которым трудно справиться.

В качестве альтернативы вы можете попробовать создать отдельный скрипт, запускающий Cyberduck, с установленным битом setuid. Биты setuid позволяют сценарию автоматически запускаться с привилегиями владельца скрипта.

+0

Спасибо за ваше предложение, я попробую, но безопасно? –

+0

бит setuid позволяет просто запустить этот скрипт как другой пользователь. Да, это немного увеличивает вектор атаки. – Evert

+0

Кроме того, я сейчас читаю, что setuid отключен на Mac OS X 10.5, это, кажется, крайнее решение. –

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