Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Liby w linuxie - a php i ssh
Forum PHP.pl > Forum > Przedszkole
dram
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.
!*!
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.
dram
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.
!*!
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");
dram
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.