[+] Uruchomienie skryptu bash z poziomu php

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

[+] Uruchomienie skryptu bash z poziomu php

Post autor: kodama »

Witajcie
Napisałem sobie skrypt do obróbki plików tekstowych, to co próbuję teraz zrobić to uruchomienie go z poziomu php, chwilowo mam taką "prościznę" w php:

Kod: Zaznacz cały

<?php

shell_exec('sh lista');

?>
Gdzie lista to nazwa skryptu. I teraz tak, katalog ma prawa 777, skrypt nie wymaga, żeby uruchamiać go przez sudo, zawiera praktycznie same "podstawowe" komendy. Plik index.php i skrypt lista znajdują się w tym samym katalogu, tym o którym pisałem wcześniej.
Najpierw za pomocą curl pobieram zawartość strony, później ją obrabiam. Odpalając skrypt normalnie w terminalu działa jak należy.
Natomiast po uruchomieniu z php dzieje się tyle, że powstają wszystkie pliki, które powinny, ale są one puste. Już samo pobranie zawartości danej strony też jest plikiem o rozmiarze 0. Czyli teoretycznie tak jakby już na tym elemencie było coś nie tak. Jest to zwykłe:

Kod: Zaznacz cały

curl -s -u $user:$pass $link > lista.tmp
Oczywiście zmienne user, pass i link są zdeklarowane na samym początku pliku.

Wszystko robię na lokalnym komputerze, mam zainstalowanego LAMPPa, czyli takie wszystko w jednym.
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

A próbowałeś przekierować strumień stderr i zobaczyć czy curl nic tam nie wypisuje? W curlu możesz jeszcze użyć przełącznika "-o" i po tym nazwa pliku.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Dobrze, dzięki za trop. Faktycznie, okazało się, że jest problem z uwierzytelnieniem, konkretnie z weryfikacją certyfikatu. Opcja "-k" załatwiła sprawę.
Może amatorszczyzną lekko trącam, ale moja wiedza na temat PHP jest dość skromna. Nie rozumiem na przykład dlaczego ten sam skrypt, który normalnie działa w terminalu, będąc wywołany z poziomu PHP sprawia problemy? Przecież teoretycznie robi dokładnie to samo więc? :)

Miałem wizję, żeby przerobić ten skrypt na PHP, ale chyba się na to nie będę porywał.
ODPOWIEDZ