Jestem informatykiem z zamiłowania i szkoły (PK Inf 2 rok). Mam ciekawy problem, który wydaje się być bardzo prosty do rozwiązania, ale niestety w moim przypadku tak nie jest.
Zadanie:
Napisać skrypt w PHP pobierający dane z programu nc.
Rozwiązanie:
Z pomocą przychodzi nam funkcja PHP shell_exec, która może wyświetlać wyniki,które widzimy w bashu łącząc się przez SSH.
Przykładowy kod:
Kod: Zaznacz cały
<?php
$output = shell_exec('nc -v -z linux.pl 80');
echo "<pre>$output</pre>";
?>
funkcja shell_exec nie zwraca żadnych wyników dla programu nc. Natomiast jeżeli jako komendę wpisze listowanie plików: (shell_exec('ls -lart') to na ekranie bardzo ładnie ukaże się zawartość katalogu.
Moje pytanie:
Dlaczego u mnie nie chce się nic pokazać, jeżeli listowanie plików działa i kilka innych komend. Nawet ping po skróceniu jego działania (np.: -c 4) ładnie wyświetla się na stronie.
Moja walka:
Próbowałem zapisywać plik po przez (>) nawet na kilku powłokach (2>&1) i niestety nic nie było zwracane.
Jeżeli natomiast wpiszę te same dane w bashu to wszystko ładnie chodzi, plik jest zapisywany i zawiera treść.
Moja maszyna:
Serwer w OVH kimstufii XXL wraz z panelem Direct Admin.
Proszę o pomoc bo nie mam pojęcia co może być przyczyną.
Jeżeli brakuje jakichś informacji proszę pisać a na pewno je zamieszczę i każdą propozycje rozwiązania problemu przetestuje.