DeoN 0 Zgłoś post Napisano Styczeń 18, 2014 Witajcie, Mam mały problem otóż napisałem sobie prosty skrypt w sh wygląda on tak: #!/bin/bash cd /home/ts3/bot ./ts3phpbot.sh start W skrócie przechodzi on do folderu z botem na ts3 który posiada tam kilka pluginów.. Problem jest taki że samo sh działa poprawnie po wywołaniu go w puttym śmiga, jak wejdę w plik php który wygląda tak: <?php $test = system("sh ./testowy.sh"); echo $test; ?> Zwraca mi komunikat o poprawnym uruchomieniu bota.. starting all instances of ts3phpbot: starting config/virtualServer/9988...\tdone\n starting config/virtualServer/9989...\tdone\n Niestety, problem jest taki że nie działa.. chmod jaki nadałem do +x na pliki sh. Jakieś podpowiedzi jak to można zrobić? Pozdrawiam Piotr 'DeoN' Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Styczeń 18, 2014 (edytowany) zobacz czy masz tego samego usera dla obu plików. chown www-data plik.sh i zobacz Edit: Podejrzewam że user www-data także nie może uruchomić serwera ts3. Pomyśl nad ssh2 Edytowano Styczeń 18, 2014 przez Kamikadze (zobacz historię edycji) 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 18, 2014 zobacz czy masz tego samego usera dla obu plików. Pomyśl nad ssh2 Oba pliki posiadają tego samego użytkownika. Mógłbyś podesłać może jakiś przykład ssh2? Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 18, 2014 A może bez wykonywania sh? http://www.php.net/manual/en/function.ssh2-exec.php Udostępnij ten post Link to postu Udostępnij na innych stronach
PrecelusMaximus 53 Zgłoś post Napisano Styczeń 18, 2014 (edytowany) @DeoN: Powiem ci szczerze. Że sam miałem podobny problem. Miałem prosty skrypcik do uruchamiania serwerów TS. przez komendę system() co chwila były problemy. Skupiłem się na ssh2 i śmigało wszystko jak mała motorynka W ssh2 podajesz adres IP, login i hasło do konta. Wykonuje Ci polecenia jak u zwykłego usera... Tylko trzeba doinstalować ssh2 po stronie php.. Sprawdź czy jak wpiszesz w terminalu: php plik_php.php czy się uruchomi poprawnie Edytowano Styczeń 18, 2014 przez PrecelusMaximus (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Syndrom 95 Zgłoś post Napisano Styczeń 18, 2014 Oba pliki posiadają tego samego użytkownika. Mógłbyś podesłać może jakiś przykład ssh2? Mogą nawet i posiadać jako ownera innego użytkownika. Chodzi o uprawnienia dla pliku oraz do katalogu. Uruchom skrypt dla celów testowych jako użytkownik na którym wykonwyany jest proces php (www-data, apache lub jak używasz modułu security to jakiś odpowiedni user) su user -c '/sciezka/skrypt.sh' Zobaczysz komunikat o co kaman, ewentualnie strace Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 18, 2014 (edytowany) @DeoN: Powiem ci szczerze. Że sam miałem podobny problem. Miałem prosty skrypcik do uruchamiania serwerów TS. przez komendę system() co chwila były problemy. Skupiłem się na ssh2 i śmigało wszystko jak mała motorynka W ssh2 podajesz adres IP, login i hasło do konta. Wykonuje Ci polecenia jak u zwykłego usera... Tylko trzeba doinstalować ssh2 po stronie php.. Sprawdź czy jak wpiszesz w terminalu: php plik_php.php czy się uruchomi poprawnie Po wpisaniu php start.php nie śmiga niestety. Starałem się również poprzez link od Wlodzia spróbować ssh2 <?php $connection = ssh2_connect('ip', 22); ssh2_auth_password($connection, 'pw', 'haslo'); $stream = ssh2_exec($connection, './start.sh'); ?> Nic. W samym terminalu komenda su user -c '/sciezka/skrypt.sh' po odpowiedniej zmianie działa, bez błędów itp. Edytowano Styczeń 18, 2014 przez DeoN (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 18, 2014 $stream = ssh2_exec($connection, './start.sh'); a czy ścieżka do pliku jest poprawna? Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 18, 2014 $stream = ssh2_exec($connection, './start.sh'); a czy ścieżka do pliku jest poprawna? Plik sh znajduje się w tym samym folderze co sh. Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 18, 2014 Czyli rozumiem, że jeśli logujesz się np przez puTTy i po zalogowaniu dasz komendę dir to widzisz ten plik? Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 18, 2014 (edytowany) Czyli rozumiem, że jeśli logujesz się np przez puTTy i po zalogowaniu dasz komendę dir to widzisz ten plik? Tak, może inaczej teraz tak. Zmieniłem komendę na taką: $stream = ssh2_exec($connection, '/var/www/bot/start.sh'); Tak z czystej ciekawości dodałem echo $stream; Łapę taki komunikat Resource id #3 Edytowano Styczeń 18, 2014 przez DeoN (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 18, 2014 Czyli uchwyt połączenia jest. A spróbuj wywołać polecenie odpalenia serwer TS3 bez pliku sh, czyli to co masz w sh wywal do polecenia w PHP Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 18, 2014 (edytowany) czyli to co masz w sh wywal do polecenia w PHP Jeżeli dobrze zrozumiałem to to: #!/bin/bash cd /home/ts3/bot/ ./ts3phpbot.sh start Mam przerobić na coś takiego: /home/ts3/bot/ts3phpbot.sh start Niestety wciąż nie śmiga. Edytowano Styczeń 18, 2014 przez DeoN (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
wlodziu 49 Zgłoś post Napisano Styczeń 18, 2014 cd /home/ts3; ./ts3server_startscript.sh start Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 18, 2014 cd /home/ts3; ./ts3server_startscript.sh start Mnie chodziło bardziej o coś takiego: cd /home/ts3/bot; ./ts3phpbot.sh start z tego co podałeś tak to teoretycznie powinno wyglądać.. Dalej ten sam błąd ; < Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Styczeń 18, 2014 (edytowany) Włącz display errors w pliku. SSH2 masz doinstalowane na serwerze do php? edit: daj komendę do ssh2 touch plik.txt i zobacz czy się utworzy Edytowano Styczeń 18, 2014 przez Kamikadze (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Styczeń 18, 2014 Skoro masz stream, to użyj go by pobrać output z serwera.. Programiści, a biadolicie niesamowicie tu. @Kamikadze Jak Twoim zdaniem otrzymałby strumień bez biblioteki ssh? Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość Kamikadze Zgłoś post Napisano Styczeń 18, 2014 Może skrypt jakiś zły Wrzuć całość najlepiej Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 19, 2014 (edytowany) Ręce i nogi opadają jak czytam niektóre posty. Zacznij sobie od utworzenia skryptu w stylu ts3.sh, który odpala serwer. Upewnij się, że via SSH jesteś w stanie go odpalić, czyli komenda sh ts3.sh działa poprawnie. Jeśli tak robisz to samo w php, jeśli w php nie działa, a w ssh tak to robisz sztuczki. Sztuczka pierwsza: if [ "$1" != "fallback" ]; then # Pierwsze odpalenie sh $0 "fallback" # Exit exit 0 fi # Twój kod Reszta płatna . Edytowano Styczeń 19, 2014 przez Archi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 19, 2014 Ręce i nogi opadają jak czytam niektóre posty. Zacznij sobie od utworzenia skryptu w stylu ts3.sh, który odpala serwer. Upewnij się, że via SSH jesteś w stanie go odpalić, czyli komenda sh ts3.sh działa poprawnie. Jeśli tak robisz to samo w php, jeśli w php nie działa, a w ssh tak to robisz sztuczki. Sztuczka pierwsza: if [ "$1" != "fallback" ]; then # Pierwsze odpalenie sh $0 "fallback" # Exit exit 0 fi # Twój kod Reszta płatna . Wybacz, ale nic nie zrozumiałem. Jestem początkujący na linuxie, chodzi mi po prostu o to abym mógł sobie bota do ts3 odpalić ze strony.. Żadnego panelu nie robię... Plik php <?php $connection = ssh2_connect('ip', 22); ssh2_auth_password($connection, 'login', 'haslo'); $stream = ssh2_exec($connection, '/home/ts3/bot/ts3phpbot.sh start'); echo $stream; ?> Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Styczeń 19, 2014 Przeczytaj jeszcze raz, jak używa się streamu z tej biblioteki ; ) Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 19, 2014 Przeczytaj jeszcze raz, jak używa się streamu z tej biblioteki ; ) Jakaś mała podpowiedź proszę ? Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 19, 2014 Jakaś mała podpowiedź proszę ? Proszę bardzo - http://www.php.net/manual/pl/ Udostępnij ten post Link to postu Udostępnij na innych stronach
DeoN 0 Zgłoś post Napisano Styczeń 19, 2014 To ja sobie daruję ^^ Będę wklepywał ręcznie wszystko ^^ Dziękuję za pomoc osobą chętnym Miłego wieczoru życzę. Udostępnij ten post Link to postu Udostępnij na innych stronach
ArabSmall 118 Zgłoś post Napisano Styczeń 19, 2014 Zawsze możesz skorzystać z darmowego małego panelu:http://c0m4r.lamarr.pl/minipanel/ prosta instalacja i obsługuje TS3. Udostępnij ten post Link to postu Udostępnij na innych stronach