Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> łą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
 
Start new topic
Odpowiedzi
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

Posty w temacie


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: 9.10.2025 - 12:50