Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] shell_exec problem z uruchomieniem programu
Forum PHP.pl > Forum > PHP
botnaizi
Witajcie,

Mam problem z uruchomieniem programu poprzez shell_exec. Działa np. polecenie pwd, ls itp. Program służy do włączenia czegoś przez port LPT, więc może to problem z uprawnieniami?

abort
Tak, prawa to najczęstszy problem. Ewentualnie problem może być ze ścieżką dostępu do binarki. Wymienione przez Ciebie polecenia zwykle leżą w /bin lub /usr/bin, a ten dedykowany program może leżeć np. w /opt czy /usr/local/bin.
Zlokalizuj położenie programu i o ile prawa pozwolą, to powinieneś umieć go uruchomić.
botnaizi
Program mam w /var/www/ pod nazwą lpt. Komenda wygląda tak:
  1. shell_exec('./var/www/lpt');

redeemer
Może /var/www/lpt
abort
No to jak masz program w drzewie serwera WWW, to upewnij się, że w ogóle możesz ten program wykonać. Często administratorzy montują filesystem z opcją "noexec", która zabrania wykonywania jakichkolwiek binarek z danego filesystemu.
botnaizi
Nie bardzo rozumiem, o co chodzi.
Nadawałem chmod chown na www-data, ale to nic w sumie nie zmienia, bo testowy skrypt w bashu odpala, ale już tego z C nie chce.
Może dałoby się to zrobić logując się z php do ssh i wtedy wykonać komendę, lecz problem jest taki, że kiedyś próbowałem, ale miałem problem z pakietami.
Jakie mam doinstalować, to może tak spróbuję to ominąć?


EDIT: ok udało mi się to zrobić.
zainstalowałem pakiet libssh2-php. Potem oczywiście restart apacha,
Kod wygląda tak:
  1. $connection = ssh2_connect('localhost', 22);
  2. ssh2_auth_password($connection, 'root', 'haslo');
  3.  
  4. $stream = ssh2_exec($connection, 'cd /var/www && ./lpt');


Może komuś się przyda wink.gif
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.