Hi all,
Ik heb een connectie opgezet naar een server via ssh2_connect, nu wil ik een .sh script uitvoeren binnen een PHP-pagina. Wanneer ik op een link op de pagina klik dient het .sh-script te worden uitgevoerd. Hoe kan ik dit realiseren?
Vast bedankt voor de replies!
Evenementen voor de komende 60 Dag(en)
Resultaten 1 tot 15 van de 16
Onderwerp: .sh uitvoeren binnen php
-
25/09/09 20:27.sh uitvoeren binnen php
-
25/09/09 21:55
-
26/09/09 00:16Die heb ik over het hoofd gezien. Dank voor je reactie, ik kan weer verder
-
26/09/09 01:11Ik wil hier graag een vraag aan toevoegen.
Hoe voer je hem dan uit zonder dat hij als apache wordt uitgevoerd? Ik heb root of iig sudo rechten nodig voor bepaalde scripts, bij exec('sudo bash.sh'); moet je daarna password opgeven; gaat dus niet werken.
Edit: Antwoord al gevonden
Oorspronkelijk geplaatst door http://theserverpages.com/php/manual/en/function.shell-exec.php
- advertentie
-
29/09/09 16:04Eindelijk... ik kijk al erg lang uit naar hoe ik een script met root privileges op een andere server kan laten uitvoeren.. (Optie om met ssh zonder wachtwoord taken te starten leek me niet zo'n goed idee ; -)
... het het is zo simpel.. Dank!
-
01/10/09 20:27Ik loop tegen het volgende - toch gerelateerde - probleem aan:
Als ik echter $user gebruik zoals in bovenstaand voorbeeld, werkt het script niet en zal de server niet starten. Weet iemand hiervoor een oplossing?Code:if(isset($_GET['start'])){$output = shell_exec('bash /home/$user/config start'); } if(isset($_GET['stop'])){$output = shell_exec('bash /home/test/config stop'); }
Het idee erachter is dat ik via het administratiepaneel de homedirectory van de gebruiker opgeef, die altijd /home/game<nummer> is (bijvoorbeeld /home/game10). Als ik vervolgens /home/$user gebruik (die dus uit de database gelezen zou moeten worden, gebeurt er niets.
Help!
-
01/10/09 20:28Wat voor script probeer je te execen ?
-
01/10/09 20:34Door de single quotes wordt $user als (gedeelte van) een string opgevat, in plaats van als variabele. Het volgende zou wel moeten werken (mits $user juist gedefinieerd is):
ofCode:if(isset($_GET['start'])){$output = shell_exec('bash /home/'.$user.'/config start');Code:if(isset($_GET['start'])){$output = shell_exec("bash /home/$user/config start");
-
01/10/09 23:25
-
01/10/09 23:36Ik gebruik meestal single quotes, zoals in mijn eerste code voorbeeld. Met de syntax highlighter die ik gebruik wordt het daar stukken leesbaarder mee, maar 't blijft natuurlijk een kwestie van persoonijke voorkeur. Een nadeel van het gebruik van single quotes is wel dat zaken als \n (new line) genegeerd worden.
-
02/10/09 08:56De meeste programma's highlighten variabelen ook als je {$var} gebruit binnen dubbele quotes. Dit heeft mijn voorkeur over het algemeen.
-
02/10/09 14:14@ilnee: Ik heb je eerste code gebruikt en deze werkt - op de variable na. Ik kom er niet uit....
Ik kan de variable enkel werkend zien als output via:Code:if(isset($_GET['stop'])){$output = shell_exec('bash /home/'.$row->homedir.'/config stop'); } if(isset($_GET['stop'])){$output = shell_exec('bash /home/'.$homedir.'/config stop'); }
De stop- en startcommando's worden nu niet uitgevoerd omdat die de $homedir niet meekrijgen, en dus blijven hangen in /home. Hopelijk snap je wat ik bedoel?Code:<?php $row->homedir; ?>
-
03/10/09 02:09Julian, geeftde juiste folder en/of user weer? In dat geval zou de rest van de code moeten kloppen. Als dat ook niet werkt, kun je dan iets meer van je script laten zien?PHP Code:echo $row->homedir;
Ik ben redelijk verknocht aan UltraEdit, welke "tekst $var tekst" als één string beschouwt. Misschien moet ik de instellingen eens nalopen, want gebruik van dubbele quotes zijn soms wel handig.
-
03/10/09 10:02Ik bedoelde het als wat hierboven staat. Dus daadwerkelijk {} om je variabele plaatsen binnen de dubbele quotes. Coda (Apple) highlight dit in ieder geval.PHP Code:$foo = "{$bar}foo";
-
03/10/09 12:14Ik heb nog een beetje lopen expirimenteren, en kwam uit op het volgende (eigenlijk... hoe logisch):
En dat werkt super! Ik stel nu de homedirectory van de klant in via m'n administratiepaneel en die wordt nu correct uitgelezenCode:if(isset($_GET['start'])){$output = shell_exec('bash /home/'.$row->homedir.'/config start'); }
Thanks voor de support!



LinkBack URL
About LinkBacks

