Skocz do zawartości

Web Hosting Talk

  • progreso.pl

    Partner technologiczny

    Upraszczamy to, co inni starają się komplikować. Prosto, pewnie, przyjaźnie - tak robimy hosting!
  • Kei.pl

    Partner technologiczny

    Kei.pl działa na polskim rynku internetowym od 2000 roku. Obecnie na blisko 300 serwerach w Centrum Danych Kei.pl znajduje się kilkadziesiąt tysięcy stron WWW.
  • S-NET.info

    Partner technologiczny

    S-NET to dostawca usług dla biznesu. Najważniejsze usługi świadczone przez firmę to usługi Centrum Danych, dostęp do Internetu, transmisja danych oraz tranzyt do różnych operatorów.
  • Sprint Data Center

    Partner technologiczny

    Sprint Data Center to jedyne w Polsce północno-wschodniej i jednocześnie jedno z najnowocześniejszych w kraju centrum przechowywania i przetwarzania danych.

 

Problem z MiniPanelem "shell_exec"


12 odpowiedzi na ten temat

Problem z MiniPanelem "shell_exec"

#1 Maniecki106

    Czasami na forum

  • Użytkownicy
  • 33 postów

Napisany 06 styczeń 2012 - 16:26

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.
By PhotoShope®

#2 Aimer

    Weteran WHT

  • [Użytkownicy]
  • PipPipPipPipPipPipPipPip
  • 658 postów

Napisany 06 styczeń 2012 - 16:36

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.
Biznes-Host.pl - Servery VPS, Hosting www, http://logout.pl/polecam/aimer
HitMe.net.pl - Hosting www, serwery VPS, Cloud

#3 Arhu

    Często na forum

  • WHT Pro
  • 53 postów

Napisany 06 styczeń 2012 - 18:58

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


#4 Maniecki106

    Czasami na forum

  • Użytkownicy
  • 33 postów

Napisany 06 styczeń 2012 - 20:00

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"
By PhotoShope®

#5 Aimer

    Weteran WHT

  • [Użytkownicy]
  • PipPipPipPipPipPipPipPip
  • 658 postów

Napisany 06 styczeń 2012 - 20:50

Próbowałeś tak jak Ci radzono? Wpierw ścieżka do interpretera potem cała do skryptu.
Biznes-Host.pl - Servery VPS, Hosting www, http://logout.pl/polecam/aimer
HitMe.net.pl - Hosting www, serwery VPS, Cloud

#6 Maniecki106

    Czasami na forum

  • Użytkownicy
  • 33 postów

Napisany 06 styczeń 2012 - 20:57

Tak, lecz wywaliło "error".
By PhotoShope®

#7 Kamikadze

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 1577 postów
  • Skąd:Sulejówek
  • Imię:Emil
  • Nazwisko:M

Napisany 06 styczeń 2012 - 21:00

No to mów tak od razu...

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

Darmowy Monitoring serwerów!

SerwerStatus.pl - monitorowanych ponad 70 serwerów z 3 Polskich lokalizacji.


#8 Aimer

    Weteran WHT

  • [Użytkownicy]
  • PipPipPipPipPipPipPipPip
  • 658 postów

Napisany 06 styczeń 2012 - 21:02

Jakbyś szukał, to dokładniej nazywa się to libssh2. Po tym zrestartuj php względnie serwer httpd.
Biznes-Host.pl - Servery VPS, Hosting www, http://logout.pl/polecam/aimer
HitMe.net.pl - Hosting www, serwery VPS, Cloud

#9 Maniecki106

    Czasami na forum

  • Użytkownicy
  • 33 postów

Napisany 06 styczeń 2012 - 21:10

Mam to zainstalowane, potrzebowałem do SwiftPanelu.
Niestety nie znam funkcji SSH2.
By PhotoShope®

#10 Kamikadze

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 1577 postów
  • Skąd:Sulejówek
  • Imię:Emil
  • Nazwisko:M

Napisany 06 styczeń 2012 - 21:16

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 :)

Ten post był edytowany przez Kamikadze dnia: 06 styczeń 2012 - 21:17

Darmowy Monitoring serwerów!

SerwerStatus.pl - monitorowanych ponad 70 serwerów z 3 Polskich lokalizacji.


#11 Maniecki106

    Czasami na forum

  • Użytkownicy
  • 33 postów

Napisany 06 styczeń 2012 - 21:27

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")

Ten post był edytowany przez Maniecki106 dnia: 06 styczeń 2012 - 21:37

By PhotoShope®

#12 dofrian

    Czasami na forum

  • Użytkownicy
  • 48 postów

Napisany 07 styczeń 2012 - 16:11

Na podstawie skryptu Kamikadze napisałem również skrypt STOP i sprawdź czy dobrze Ci działa, bo nie jestem pewny.

Start:
<?php
$host = 'twoj_host';
$port = 'port';
$user = 'uzytkownik';
$haslo = 'haslo';
$polecenie = 'cd /home/minecraft && screen -S 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 został poprawnie włączony.</h2></center>";}
?>
Stop:
<?php
$host = 'twoj_host';
$port = 'port';
$user = 'uzytkownik';
$haslo = 'haslo';
$polecenie = 'screen kill minecraft';
$polaczenie = ssh2_connect($host, $port);
ssh2_auth_password($polaczenie, $user, $haslo);
$stream = ssh2_exec($polaczenie, $polecenie);
if($stream) {echo "<center><h2>Serwer został pomyślnie wyłączony. Aby włączyć go z powrotem, NACIŚNIJ TEN ODNOŚNIK: <a href="start.php">WŁĄCZ</a></h2></center>";}
?>

Edit.:
Poprawiono skrypt, dodałem do niego inne wywołanie echo "Serwer został pomyślnie wyłączony. Aby włączyć go z powrotem, NACISNIJ TEN ODNOŚNIK: WŁĄCZ".
Edit.:
Kolejne poprawki.

Ten post był edytowany przez dofrian dnia: 07 styczeń 2012 - 16:17


#13 Kamikadze

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 1577 postów
  • Skąd:Sulejówek
  • Imię:Emil
  • Nazwisko:M

Napisany 07 styczeń 2012 - 16:24

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...

Darmowy Monitoring serwerów!

SerwerStatus.pl - monitorowanych ponad 70 serwerów z 3 Polskich lokalizacji.






1 Użytkowników czyta ten temat

0 użytkowników, 1 gości, 0 anonimowych użytkowników