Czy to mozliwe?
-
- Posty: 16
- Rejestracja: 09 lipca 2006, 17:16
Czy to mozliwe?
Istnieje mozliwosc uruchomienia procesu na serwerze z poziomu przegladarki np poprzez skrypt php? Jezeli tak to: czy serwer www i aplikacja ktora chce uruchomic musza byc na jednym serwerze?
-
- Beginner
- Posty: 207
- Rejestracja: 26 czerwca 2006, 01:49
- Lokalizacja: Kraków za firewallem
Re: Czy to mozliwe?
Tak.voodoofreak pisze:Istnieje mozliwosc uruchomienia procesu na serwerze z poziomu przegladarki np poprzez skrypt php?
Raczej tak.Jezeli tak to: czy serwer www i aplikacja ktora chce uruchomic musza byc na jednym serwerze?
pozdro
-
- Posty: 16
- Rejestracja: 09 lipca 2006, 17:16
http://pl.php.net/manual/pl/ref.exec.php
np. proc_open:
Zamiast proc_open możesz też użyć prostszych shell_exec() lub exec() bądź też system().
Zwróć uwagę czy na serwerze jest ustawione safe_mode, i poczytaj dokumentację do której dałem link.
Co do odpalenia jakiegoś programu na zdalnym serwerze polcam zerknąć tutaj:
http://pl.php.net/manual/pl/function.ssh2-exec.php
Czy tak -- jest to możliwe.
Czyli np.
Przykłady z manuala php tak w razie gdyby ktoś nie przyuważył na stronach które podałem :P.
Pozdrawiam,
Verdan
np. proc_open:
Kod: Zaznacz cały
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);
$cwd = '/tmp';
$env = array('some_option' => 'aeiou');
$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);
if (is_resource($process)) {
// $pipes now looks like this:
// 0 => writeable handle connected to child stdin
// 1 => readable handle connected to child stdout
// Any error output will be appended to /tmp/error-output.txt
fwrite($pipes[0], '<?php print_r($_ENV); ?>');
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
// It is important that you close any pipes before calling
// proc_close in order to avoid a deadlock
$return_value = proc_close($process);
echo "command returned $return_value\n";
}
?>
Zwróć uwagę czy na serwerze jest ustawione safe_mode, i poczytaj dokumentację do której dałem link.
Co do odpalenia jakiegoś programu na zdalnym serwerze polcam zerknąć tutaj:
http://pl.php.net/manual/pl/function.ssh2-exec.php
Czy tak -- jest to możliwe.
Czyli np.
Kod: Zaznacz cały
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>
Pozdrawiam,
Verdan
-
- Posty: 16
- Rejestracja: 09 lipca 2006, 17:16
dziekuje slicznie za odpowiedz napisales w sumie wszystko czego oczekiwalem
[ Dodano: 2006-09-20, 14:29 ]
a jednak nie do konca jest wszystko pieknie.. moze mniej z tematem zwiazane jednak moze ktos mi odpowie (tylko tak zebym jako newbe zrozumial). Otoz przy probie uruchomienia wyskakuje mi taki oto blad:
Szukalem odpowiedzi w sieci ale raczej nic z tego nie wyniklo. gdzies tam ktos napisal " trzeba było ustawić w PATH ścieżkę do własnych
binarek z php" ale nie wiem co z tym zrobic :/
[ Dodano: 2006-09-20, 20:40 ]
juz dziala... musialem zainstalowac pakiet autoconf.
[ Dodano: 2006-09-20, 14:29 ]
a jednak nie do konca jest wszystko pieknie.. moze mniej z tematem zwiazane jednak moze ktos mi odpowie (tylko tak zebym jako newbe zrozumial). Otoz przy probie uruchomienia
Kod: Zaznacz cały
./phpize && ./configure --with-ssh2 && make
Kod: Zaznacz cały
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.
binarek z php" ale nie wiem co z tym zrobic :/
[ Dodano: 2006-09-20, 20:40 ]
juz dziala... musialem zainstalowac pakiet autoconf.