Skocz do zawartości
Zaloguj się, aby obserwować  
Maniecki106

Problem z MiniPanelem "shell_exec"

Polecane posty

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

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

a spróbuj

<?php
shell_exec('/bin/bash /home/minecraf/start.sh') or die("error");
echo"ok";
?>

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

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
Gość Kamikadze

No to mów tak od razu...

 

Zainstaluj na serwerze SSH2 i przerób skrypt (ledwie kilka linijek więcej kodu :D)

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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
Gość Kamikadze

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 przez Kamikadze (zobacz historię edycji)
  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

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

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ę

Zaloguj się, aby obserwować  

×