peres.pro 9 Zgłoś post Napisano Lipiec 1, 2012 Witam, chciałbym odpalić program poprzez wywołanie skryptu php lecz coś nie trybi, dodałem co prawda "shell_exec = on" do php.ini ale nic to nie dało, da się jakoś sprawdzić czy shell_exec jest u mnie aktywny, szukałem adekwatnej linijki w phpinfo ale nie znalazłem. OS debian 6 Udostępnij ten post Link to postu Udostępnij na innych stronach
peres.pro 9 Zgłoś post Napisano Lipiec 1, 2012 (edytowany) To tak, teraz trochę nad tym posiedziałem i shell exec u mnie działa prawidłowo, niestety mam małe problemy z przejściem na innego użytkownika, sam skrypt ma działać na tej zasadzie że wykonuje skrypt php oto on: <?php shell_exec("cd /home/lanceq && ./startz "); echo "<pre>$output</pre>"; ?> w przeglądarce wyświetla się :Starting theforgottenserver: done. (jest to echo z skryptu startz który poniżej pokaże) skrypt startz wygląda tak: echo -n "Starting theforgottenserver: " cd /home/lanceq && su -c "screen -AdmS TFS ./theforgottenserver" lanceq echo "done." No i z powyższego skryptu wykonuje się tylko jedno i drugie echo a to co po środku nie, nie przechodzi na innego użytkownika i nie uruchamia serwera, dodam że ten skrypt nie robi su z root'a a z "client4" bo to ispconfig, właśnie wydaję mi się że problem rozwiąże dodanie do tej środkowej linijki opcji podania hasła do usera lanceq ale niestety nie znalazłem takowej opcji w helpie. Edytowano Lipiec 1, 2012 przez lanceq (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Lipiec 1, 2012 Korzystanie z tego polecenia jest potencjalnie niebezpieczne. Lepiej skorzystaj z libssh2 w PHP. Ewentualnie jeśli bardzo chcesz korzystać z shell_exec musiałbyś zezwolić użytkownikowi spod którego działa httpd na dostęp do plików, które chcesz uruchamiać. Udostępnij ten post Link to postu Udostępnij na innych stronach
Devias 8 Zgłoś post Napisano Lipiec 1, 2012 Jak chcesz tak, z tego korzystać to proszę skrypt: $sciezka = "/home/lanceq"; $polecenie = "cd ".$sciezka."; screen -A -m -d -S TFS ./theforgottenserver"; $polaczenie = ssh2_connect("IP", 22); ssh2_auth_password($polaczenie, "Nazwa Usera (np.: ROOT)", "Hasło"); $stream = ssh2_exec($polaczenie, $polecenie); if($stream) {echo "Działa";} Jak chcesz tak, z tego korzystać to proszę skrypt: $sciezka = "/home/lanceq"; $polecenie = "cd ".$sciezka."; screen -A -m -d -S TFS ./theforgottenserver"; $polaczenie = ssh2_connect("IP", 22); ssh2_auth_password($polaczenie, "Nazwa Usera (np.: ROOT)", "Hasło"); $stream = ssh2_exec($polaczenie, $polecenie); if($stream) {echo "Działa";} Udostępnij ten post Link to postu Udostępnij na innych stronach
peres.pro 9 Zgłoś post Napisano Lipiec 1, 2012 No tak, tylko że niestety mam zmiennie IP i to raczej nie będzie dobry pomysł w moim przypadku. Udostępnij ten post Link to postu Udostępnij na innych stronach
Devias 8 Zgłoś post Napisano Lipiec 1, 2012 Ewentualnie zamiast IP wpisz: "localhost" lub "127.0.0.1" Udostępnij ten post Link to postu Udostępnij na innych stronach
peres.pro 9 Zgłoś post Napisano Lipiec 1, 2012 (edytowany) Oke, działa. Tylko możecie mi powiedzieć czemu ssh2 jest bezpieczniejsze od exec'a ? Edytowano Lipiec 1, 2012 przez lanceq (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach