Kezdőoldal » Számítástechnika » Programozás » Linux screen PHP, hogyan...

Linux screen PHP, hogyan lehetne megoldani?

Figyelt kérdés

Sziasztok!

Ismét nem találtam szinte sehol sem leírást erről, úgy-hogy ismételten ide a szakemberekhez teszem fel a kérdésemet.


Linuxon (ubuntu 18.04 desktop LTS) elkezdtem használni a screen parancsot, ugyanis lennének kisebb projekt terveim mellyel tudnám fejleszteni a PHP tudásomat. A screen -t feltelepítettem, létrehoztam egy ablakot stb...


Az lenne röviden a tervem így első PHP screen -es projektet illetően, hogy egy egyszerű Szia szót kiírassak egy szerverre, a " say Szia " paranccsal. De ez előtt ki kéne választani valahogy a szerverhez tartozó screen -t.


A screen pontosan a szervernek a console -jához van megnyitva, és a szerver természetesen el is van indítva. Így a PHP -nak csak annyi lenne a dolga, hogy shell_exec -el kiadjon egy utasítást a szervernek, amit pedig majd a szerver végrehajt, ez lenne ugyebár a say Szia.


A PHP kódom jelenleg nem komplikált, marha egyszerű:


<?php


$command = shell_exec("screen -dr myserver");


echo $command;


?>


Ez ugyebár a screen kiválasztása, amibe aztán a parancsokat lehet küldeni.


Ám a weboldalon ezt látom: Must be connected to a terminal.


Az-az egy terminálhoz kell csatlakoznom ahhoz, hogy ezt az utasítást végrehajthassa a PHP > screen -dr myserver


Na és itt a gond, nem találtam az interneten sehol se tényleges megoldást. Volt amelyik írta, hogy egy scriptet futtassak le, amely kikapcsolja az idézőjeles tiltást, volt amelyik csak elmondta mit kéne tenni nagy távlatokban, aztán meg persze semmilyen támpontot nem adott, hogy mégis azt hogy kéne megvalósítani.


Ha valaki foglalkozott már ilyennel, vagy csak szeretne segíteni ezt a kis problémát megoldani, azt nagyon megköszönném!



2018. júl. 25. 14:15
1 2
 1/13 anonim ***** válasza:
Commad line-ból futtasd a PHP scriptet, de browserből!
2018. júl. 25. 15:31
Hasznos számodra ez a válasz?
 2/13 A kérdező kommentje:

Szia!


De azzal nem lehet megoldani, hogy a felhasználók majd a weboldalon mondjuk egy gombra kattintva hajthassák végre ezt. Vagy igen?


Én ilyenről nem találtam leírást. De köszönöm a segítségedet!

2018. júl. 25. 15:51
 3/13 anonim ***** válasza:
100%

Mi a végcélod?

Amúgy webről futtatva tudsz command line PHP-t is hívni ha kell.

2018. júl. 25. 18:08
Hasznos számodra ez a válasz?
 4/13 A kérdező kommentje:

Első ilyen webes "összekötéssel" jelenleg annyi lenne a célom, hogy a szerveremnek csinálok egy weboldalt, ahol az emberek a játékban eltöltött idejüktől függően kapnak bizonyos krediteket. Mondjuk 5 óra játék után kapnak 50 kreditet.


Majd ezeket a krediteket felhasználva vásárolhatnának mondjuk egyedi kinézetet a játékban. Az, hogy a szerverről egy MySQL (mariadb) adatbázisba beinsertelje valamint update-elje a jelenlegi játékosoknak elérhető pontjait, megtudom oldani, már készen is van.

A kreditnövelést még nem oldottam meg, azt majd a legvégére hagynám, jelenleg csak egy parancs végrehajtást szeretnék megvalósítani a szerveremen, melyet PHP adna ki utasításként a weboldal által.



Valahogy így:


A tesztelésre használt weboldal felépítése::


<!DOCTYPE html>

<meta charset="UTF-8">


<?php


$jatekosnev = "Sanyi";


if(isset($_POST["test"])){


$vegrehajtando = shell_exec("screen -dr myserver && say Szia ".$jatekosnev."! Jó játékot!");


if($vegrehajtando === TRUE){

echo "A shell_exec utasítás végrehajtva.";

} else {

echo "Hiba merült fel a shell_exec utasítás kiadása közben.";

}


}


?>


<form method="POST">

<input name="test" type="submit" value="Írd ki, szia!">

</form>



-----------------------------------

1. lépés (): A játékos rákattint a weboldalon található gombra.


2. lépés (): A weboldal végrehajtja a PHP script-et.


3. lépés (): A PHP elküldi a shell_exec által az utasítást, hogy válassza ki a myserver screen-t, majd azon belül hajtsa végre a say parancsot.


3. lépés () kiegészítés: A szerveren megjelenik ezáltal a szöveg, hogy szia játékos blablabla...


-------------------------------

Nos röviden jelenleg csak ennyit szeretnék megvalósítani, aztán ha ez sikerülne, akkor jönnének a komolyabb dolgok, mint például szerveren lévő egyenleg összekötése a weboldallal SQL-en át decimal 10,2 -vel stb.......

De az már nem annyira lényeges.


Remélem érthető volt, hogy mit is szeretnék így első projektként összehozni ezzel kapcsolatosan. Ebben kéne egy kis segítség.

2018. júl. 26. 14:59
 5/13 kovpet ***** válasza:
Az egy dolog, hogy a screenes dolgot kidebuggoljuk, de azért írd már le légyszi, hogy hogyan kerül a képbe a screen egyáltalán.
2018. júl. 28. 08:46
Hasznos számodra ez a válasz?
 6/13 A kérdező kommentje:
A screen -el választanám ki a szerver console -ját, majd küldeném el a parancsot. Ez eléggé egyértelmű, 3 helyen is leírtam...
2018. júl. 28. 11:49
 7/13 kovpet ***** válasza:
Azt leírtad, hogy screen-t használsz, de azt nem, hogy mi ezzel a célod. Mit futtatsz így és miért így?
2018. júl. 28. 12:19
Hasznos számodra ez a válasz?
 8/13 A kérdező kommentje:
Te hallod, elolvastad egyáltalán a hozzászólásokat? Ott van, hogy miért azt használom és mi vele a célom...
2018. júl. 28. 17:42
 9/13 anonim ***** válasza:

Nincs ott.

Továbbra is gyanús, hogy fölösleges kínlódás az egész.

2018. júl. 28. 17:48
Hasznos számodra ez a válasz?
 10/13 A kérdező kommentje:

"Az lenne röviden a tervem így első PHP screen -es projektet illetően, hogy egy egyszerű Szia szót kiírassak egy szerverre, a " say Szia " paranccsal. De ez előtt ki kéne választani valahogy a szerverhez tartozó screen -t."


De hallgatom mi lenne az ötleted, végülis ezzel nem csak nekem segítesz, ha segítesz. :)

2018. júl. 29. 00:22
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!