Skocz do zawartości
peres.pro

shell_exec nie trybi

Polecane posty

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

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 przez lanceq (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×