Przycisk na stronie uruchamiający plik .sh

Pytania i problemy
zarządzanie, www
Glupikocz
Glupikocz

Dobry mam takie pytanie chciałbym utworzyć na stronie przycisk który uruchamia plik .sh na serwerze VPS. Czyli np na mojej stronie posiadam przycisk "Kliknij mnie" i uruchamia aplikacje np ROBOT dodałem taki skrypt ale coś nie działa.

Click Me!

spróbowałem też na serwerze stworzyć plik start.sh umiesciłem go w folderze robota, dodałem do niego

#!/bin/bash php Core.php -i 1

a na stronie zmieniłem na

     if ($_GET['run']) {
  exec("/home/robot/start.sh");
}
?>
Click Me!

i nadal nic :roll_eyes:

KrEdEnS
KrEdEnS Moderator Freebies

Spróbuj:

echo 'www-data ALL=NOPASSWD: ALL' >> /etc/sudoers

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

W jaki sposób ma to pomóc z problemem? Problem to raczej próbowanie odpalenia skryptu, który musi ciągle potem pracować za pomocą funkcji exec z php, co nie ma najmniejszego sensu pod bardzo wieloma względami i zwyczajnie nie ma prawa działać.

Glupikocz
Glupikocz

Hmm no ale przecież np TS3AudioBoty jakoś uruchamia sie w screenie i można je włączać przez strone

anon95087592
anon95087592

Z czego wiem splamy używa API TS3AudioBot a nie exec jak i większość paneli

Glupikocz
Glupikocz

Tu nie chodzi akurat o jego panel. Powiem tak stworzyłem w /var/www/html plik ./start.sh utworzyłem na głównej stronie plik index.php. Do pliku index.php dodałem oto te linijki podobno to ma działać a jednak nie wykonuje to skryptu

     if ($_GET['run']) {
  exec("/var/www/html/start.sh");
}
?>

Start

No i skrypt się nie wykonuje się :roll_eyes:

Edit1. Na serwerze plik ./start.sh normalnie się wykonuję Edit2. Dodam że wykonując php /var/www/html/start.php też skrypt się wykonuje tylko przez stronę to nie działa Edit3. Dodałem nawet plik .htaacces a w nim a także nadałem uprawnienia 775

Options +ExecCGI
AddHandler cgi-script .sh
anon95087592
anon95087592

A sprawdź czy czasem execa wyłączonego w PHP nie masz

Glupikocz
Glupikocz

Dobra jest to wyłączone teraz jak to włączyć?

w katalogu /etc/php/7.4/fpm i pliku php.ini wydaje się być to włączone 3a0a2b3d00eb17e98e613e2577bc0c74|690x93

Server version: Apache/2.4.38 (Debian) Server built: 2020-08-25T20:08:29 PHP 7.4.10 (cli) (built: Sep 9 2020 06:54:34) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.10, Copyright (c), by Zend Technologies

Edit1. Dobra udało się go włączyć i działa jak widać wiec dlaczego nie działa skrypt włączający robota? 369d59bdab097c508d820d58da50d85e|690x338

Edit2. Hmm okazało się ze po dodaniu pliku .htaacces i tego wszystkiego wystarczyło zrobić reboot maszyny...

No nic dzięki za pomoc ❤️

Glupikocz
Glupikocz

Ekhem jednak potrzebuje pomocy ponieważ skrypt który wcześniej opisałem działa bez problemu ale teraz chciałbym dodać go do panelu i ło tego nie za bardzo wiem jak to zrobić. Kod HTML f3e637562e2098bdbb3739bb9c1824c8|690x145

Kawałek HTML w którym chciałbym włączać ten skrypt

Włącz aplikację Robot

Mój skrypt php

       if ($_GET['run']) {
 exec("/var/www/html/stop.sh");
 }
 ?>
 
 Stop
anon95087592
anon95087592

Uzyj fetch / axios

Glupikocz
Glupikocz

Parda? Mozesz mi to objaśnić albo napisac co i jak bo jeszcze az tak oblatany nie jestem w php

anon95087592
anon95087592

To jest JS 😉

Glupikocz
Glupikocz

Dobra trochę ułatwiłeś sprawę bo wiem co to ale nadal nie wiem jak to stworzyć.

anon95087592
anon95087592

Pomysł jak to działać ma i wpisz w google axios lub fetch i na buttonach daj onclick

Glupikocz
Glupikocz

W tym panelu akurat znalazłem coś takiego tylko nie koniecznie wiem jak to przerobić 😃. Bo tu pisze startApp a w HTML żeby wykonał się ten skrypt jest dodane

394dc947a6cc97da61b1e1b5b9c8dcc4|690x48

I troche ryje mi to banie dlaczego tu jest startStopAPP i jeszcze app-start w button, dodam że jeśli usunie się w button app-start to aplikacja nie wystartuje.

public function startApp() {
      if($this->type == 'localhost') {
        if(!$this->check['status']) { return $this->error(); }
        $config = $this->config;

        if(preg_replace('/\D/', '', shell_exec("sudo screen -S TS3AudioBot -Q select . ; echo $?")) == 0) {
          return $this->response(false,'Error: app is enabled');
        }

        shell_exec("cd {$config['path']} && sudo screen -dmS TS3AudioBot dotnet TS3AudioBot.dll");

        return $this->response(true,true);
      } elseif($this->type == 'externalhost') {
        return $this->request('startApp');
      }
      return $this->response(false,'Error: bad api method');
    }
system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.