Linux screen PHP, hogyan lehetne megoldani?
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!
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!
Mi a végcélod?
Amúgy webről futtatva tudsz command line PHP-t is hívni ha kell.
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.
Nincs ott.
Továbbra is gyanús, hogy fölösleges kínlódás az egész.
"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. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!