Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Liby w linuxie - a php i ssh
dram
post 9.02.2013, 03:05:12
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Witajcie.

Pisze do was jako ostatnia deska ratunku..

Potrzebuje uruchomić program.

Od razu z góry zaświadczam ,że pracuje na tym samym użytkowniku w linuxie, a sposób wydawania poleceń różni się tylko tym ,że jedne to są przez putty (działające) a drugie przez php (nie działające).

Normalnie program (przez putty) uruchamiam tak:
  1. cd /usr/hlds/hlds_hltv/hlds_l/
  2. export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH


  1. Tutaj
  2. $ echo $LD_LIBRARY_PATH
  3. /usr/hlds/hlds_hltv/hlds_l:


Zwraca mi poprawnie.

No i samo uruchomienie programu czyli:

  1. screen -S serwer_mix -d -m ./hltv -ip xxxxx -port yyy +exec hltv1_mix1.cfg +serverpassword test


terminal chodzi - program też.

No i robie to z PHP

  1. $connection = ssh2_connect(xxx, 22);
  2. if (!$connection) die('Connection failed');
  3.  
  4. if (!ssh2_auth_password($connection, xxx, yyyy)) die('Connection failed');
  5.  
  6. $stream = ssh2_exec($connection, "cd /usr/hlds/hlds_hltv/hlds_l/");
  7. sleep(2);
  8. $stream = ssh2_exec($connection, 'export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH');
  9.  
  10. $stream = ssh2_exec($connection, 'echo $LD_LIBRARY_PATH');
  11. $errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
  12.  
  13. // Enable blocking for both streams
  14. stream_set_blocking($errorStream, true);
  15. stream_set_blocking($stream, true);
  16.  
  17. // Whichever of the two below commands is listed first will receive its appropriate output. The second command receives nothing
  18. echo "Output: " . nl2br(stream_get_contents($stream)); // tutaj skrypt zwraca 'enter' czyli w zasadzie do tej zmiennej lib nic nie wpisał
  19. echo "Error: " . stream_get_contents($errorStream);
  20.  
  21. // Close the streams
  22. fclose($errorStream);
  23. $stream = ssh2_exec($connection, 'screen -S serwer_mix -d -m ./hltv -ip xxxx -port yyy +exec hltv1_mix1.cfg +serverpassword test');
  24.  
  25. fclose($stream);


I takie błędy wyskakują :
  1. Error:libsteam_api_c.so: cannot open shared object file: No such file or directory
  2. Couldn't open config file hltv1_mix1.cfg.


Oczywiście w przypadku normalnego uruchamiania wszystko chodzi bardzo dobrze.

Pozdrawiam.

p.s Od razu powiem ,że uruchamianie programu tzn. wpisanie tego do skryptu basha i zapisanie jest nie możliwe gdyż (samo ./hltv) musze robić ręcznie gdyż ostatni parametr jest zmienny.

Ten post edytował dram 9.02.2013, 03:30:42
Go to the top of the page
+Quote Post
!*!
post 9.02.2013, 11:25:04
Post #2





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Gdy wpiszesz ten błąd w google masz kilka rozwiązań. Głównie chodzi o to że źle zdeklarowałeś ścieżki i ich odwołania.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
dram
post 9.02.2013, 15:36:36
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


Wybacz ale nie rozumiem jak źle ?

Robie praktycznie tak samo jak w putty ale w php nie działa, poza tym wchodze do folderu przez 'cd'

Pozdrawiam.
Go to the top of the page
+Quote Post
!*!
post 9.02.2013, 16:24:36
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Problemem nie jest tu apostrof? Wysyłasz string drugiego parametru, zamiast string który ma w sobie "zmienną".
  1. $stream = ssh2_exec($connection, "export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH");
  2. $stream = ssh2_exec($connection, "echo $LD_LIBRARY_PATH");


Ten post edytował !*! 9.02.2013, 16:24:52


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
dram
post 9.02.2013, 19:27:34
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 15.10.2011

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


spróbujmy, ale ten $LD_LIBARY_PATH - nie jest 'zdefiniowany' w moim skrypcie.

Nadal nic nie zwraca

---
Po prostu to co wpisuje w putty, przepisałem do php i dziwne jest to ,że w php nie śmiga sad.gif
--
To dziwne ale próbuje zmienić katalog poprzez cd (nawet na roocie)

i katalog nie chce mi się zmienić ...
Nie wiem co jest grane z tym php i ssh

Ten post edytował dram 9.02.2013, 21:42:15
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 07:02