Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> łączenie z ssh z poziomu php
kubek15
post
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 3
Dołączył: 28.06.2008
Skąd: PL

Ostrzeżenie: (0%)
-----


Witam

Chcę na stronie mieć pewien przycisk i po jego kliknięciu na vps'ie uruchamia mi się serwer do gry, a potem jak klikne inny to się wyłącza. Z vps'em komendy wpisuje przez ssh i wszystko gra ale jak to zrobić na stronie żeby wpisywać te komendy?
Mam wgrany moduł ssh2 na serwie i taki oto kod gotowy z jakiejś strony

w zmiennych $password i $server są parametry serwera i port 33222

  1. if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
  2. // log in at server1.example.com on port 22
  3. if(!($con = ssh2_connect($server, 33222))){
  4. echo "fail: unable to establish connection\n";
  5. } else {
  6. // try to authenticate with username root, password secretpassword
  7. if(!ssh2_auth_password($con, "root", $password)) {
  8. echo "fail: unable to authenticate\n";
  9. } else {
  10. // allright, we're in!
  11. echo "okay: logged in...\n";
  12.  
  13. // execute a command
  14. if (!($stream = ssh2_exec($con, "ls" ))) {
  15. echo "fail: unable to execute command\n";
  16. } else {
  17. // collect returning data from command
  18. stream_set_blocking($stream, true);
  19. $data = "";
  20. while ($buf = fread($stream,4096)) {
  21. $data .= $buf;
  22. }
  23. fclose($stream);
  24. }
  25. }
  26. }


w kodzie nie wywala błędów na ekranie wypisze mi okay: logged in... i tyle . Czyli wychodziło by na to ze nie przekazuje mi na ekran wyniku czyli pewnie komenda się nie wykonuje. Co może być źle ?
Go to the top of the page
+Quote Post
camikazee
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 17.04.2006
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Gdybyś choć troszkę znał się na PHP i zajrzał do manuala, to byś wiedział co robią poszczególne komendy. Wywołujesz po stronie serwera polecenie "ls", wynik zapisywany jest do zmiennej $data, której nawet zawartości nie sprawdzasz. Kolejną sprawą jest, fakt, iż komendą "ls" nie uruchamiasz serwera tylko wyświetlasz zawartość katalogu. Podpowiem tylko, że gdybyś zamiast ls wpisał komendę startową serwera, to by wynik był inny. Oczywiście aby ją wywołać, musisz się najpierw znajdywać tam, gdzie plik uruchomieniowy gry.
Go to the top of the page
+Quote Post
kubek15
post
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 3
Dołączył: 28.06.2008
Skąd: PL

Ostrzeżenie: (0%)
-----


dzięki za odpowiedz. już to czaje bo szukałem gotowca i niehciało mi sie ani sprawdzac manula ani samemu coś pisać po prostu na szybko chciałem gotowiec .
Napisałem już po swojemu , wszystko śmiga.

Ale jest jeden problem bo jak wpisuje komendy , lub kilka komend to wypisuje wszystko to co lub robi się na serwie to co chce, ale jest problem zkomendą screen
przykład
  1. ssh2_exec($con, "screen -ls")

wypisz mi aktywne screeny
a
  1. ssh2_exec($con, "screen -r serwer")

powiedzmy ze mam otwarty serwer o nazwie mine to wypisze Must be connected to a terminal. a przecież jestem zalogowany.
Pomóżcie bo na putty jak wpisze screen-r serwer i dam enter to przenosi mnie i potem daje komende np. stop ub save to kończy lub zapisuje.

Ten post edytował kubek15 25.03.2012, 20:17:30
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 00:31