Maniecki106 0 Zgłoś post Napisano Styczeń 6, 2012 Witam! Mam problem z "shell_exec", Chce stworzyć najprostszy skrypt którym mógłbym włączać/wyłączać jakiś serwer gry poprzez protokół http. No więc tak, mam skrypt "start.sh" który uruchamia serwer w screen'ie i "start.php" który uruchamiam przez przeglądarkę. Zawartość start.php: <?php shell_exec('cd /home/minecraft'); shell_exec('./start.sh'); echo"ok"; ?> No i tak, jak odpalam start.php to jedynie zwraca mi echo: "ok" a serwer się nie włącza. Wszystko ma atrybuty 777 i nie wiem dlaczego to nie działa, może mam doinstalować jakiś pakiet? Pamiętam że kiedyś używałem tego by uruchomić bezpośrednio serwer (bez pliku "start.sh") i wszystko działało. Dodam jeszcze że używam debiana, php 5 oraz lighttpd. Pozdrawiam i proszę o pomoc. Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Styczeń 6, 2012 Spróbuj podać ścieżkę bezwzględną do skryptu. Sprawdź w phpinfo czy shell_exec nie jest zablokowany, może lepiej zastosować libssh2? Bezpieczniejsze od tej funkcji. Udostępnij ten post Link to postu Udostępnij na innych stronach
Arhu 4 Zgłoś post Napisano Styczeń 6, 2012 a spróbuj <?php shell_exec('/bin/bash /home/minecraf/start.sh') or die("error"); echo"ok"; ?> 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Maniecki106 0 Zgłoś post Napisano Styczeń 6, 2012 Zmieniłem na: <?php shell_exec('cd /home/minecraft2'); shell_exec('./home/minecraft2/startowy.sh'); echo"ok"; ?> Dalej nie działa. Sprawdziłem też "phpinfo ();" ale nie wiem gdzie tam jest coś odnośnie "shell_exec" Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Styczeń 6, 2012 Próbowałeś tak jak Ci radzono? Wpierw ścieżka do interpretera potem cała do skryptu. Udostępnij ten post Link to postu Udostępnij na innych stronach
Maniecki106 0 Zgłoś post Napisano Styczeń 6, 2012 Tak, lecz wywaliło "error". Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Styczeń 6, 2012 No to mów tak od razu... Zainstaluj na serwerze SSH2 i przerób skrypt (ledwie kilka linijek więcej kodu ) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Styczeń 6, 2012 Jakbyś szukał, to dokładniej nazywa się to libssh2. Po tym zrestartuj php względnie serwer httpd. Udostępnij ten post Link to postu Udostępnij na innych stronach
Maniecki106 0 Zgłoś post Napisano Styczeń 6, 2012 Mam to zainstalowane, potrzebowałem do SwiftPanelu. Niestety nie znam funkcji SSH2. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Styczeń 6, 2012 (edytowany) Ehhh <?php $host = 'twoj_host'; $port = 'port'; $user = 'uzytkownik'; $haslo = 'haslo'; $polecenie = 'cd /home/minecraft && ./start.sh'; $polaczenie = ssh2_connect($host, $port); ssh2_auth_password($polaczenie, $user, $haslo); $stream = ssh2_exec($polaczenie, $polecenie); if($stream) {echo "<center><h2>SERWER URUCHOMIONO</h2></center>";} ?> // EDIT: Mniej więcej coś takiego. Zmień pod swoje ustawienia Edytowano Styczeń 6, 2012 przez Kamikadze (zobacz historię edycji) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Maniecki106 0 Zgłoś post Napisano Styczeń 6, 2012 (edytowany) Dziękuje za pomoc! // Wie ktoś może jak sensownie zamknąć proces? Wpisuje "screen -r mc && stop" i nie za bardzo chce działać. (stop powinno zostać wpisane "do konsoli" a ona powinna zamknąć serwer") Edytowano Styczeń 6, 2012 przez Maniecki106 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Styczeń 7, 2012 Może jeszcze napiszmy mu cały panel hostingowy... Niech też coś się nauczy a nie z gotowców ciągle... Skrypt STOPu ma w innym temacie... Udostępnij ten post Link to postu Udostępnij na innych stronach