ubuntuusers.de

shell script mit php ausführen

Status: Ungelöst | Ubuntu-Version: Ubuntu 6.10 (Edgy Eft)
Antworten |

hunting

Anmeldungsdatum:
19. April 2007

Beiträge: Zähle...

Hi zusammen,
hoffe jemand hat nen tip für mich. Ich versuch vergeblich auf meiner website (im admin bereich) ein simples web interface zur server steuerung (TS und gameserver) verwirklichen.
letztendlich soll auf einer php seite eine schaltfläche ein shell script ausführen, nur ist irgendwo der wurm drin evtl. um diese uhrzeit bei mir 😉

Hier die php welche das script ausführen soll:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Server Controlpanel</title>
</head>
<body>
<?php

if (isset($_POST['restart']))

{
echo exec('gameserver/server1/cod2/restart.sh');
}

?>

<form action="admincenter.php?site=restartserver1" method="POST" enctype="multipart/form-data">
<input type="submit" name="restart" value="Server neu starten">
</form>
</body>
</html>

ich vermute mal es ist wieder sowas von einfach, das man den wald vor lauter bäumen nicht sieht.
(ach ja vorweg, die restart.sh funktioniert via konsole wunderbar, daran liegts nicht)

schon mal danke im voraus

gruß
huntingText

Daimonion

Avatar von Daimonion

Anmeldungsdatum:
21. November 2005

Beiträge: 387

Wohnort: Vöhrenbach

wo liegt denn

"gameserver/server1/cod2/restart.sh"

relativ zum php skriptpfad?

Vielleicht hilft dir das hier:

http://de3.php.net/function.exec

hunting

(Themenstarter)

Anmeldungsdatum:
19. April 2007

Beiträge: 2

Hi,

"/gameserver/server1/cod2/restart.sh"
ist ein pfad der sowohl rel zum php script ist als auch absloute

absloute:
"/gameserver/server1/cod2/restart.sh"

rel zu php:
"var/www/home/admin/--hier mein php script--/gameserver/server1/cod2/restart.sh (die restart.sh ist hier eine verknüpfung)"

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Was genau funktioniert denn nicht? Wird exec() überhaupt ausgeführt? Welche Ausgabe erhälst du? Hast du schon mal die optionalen zusätzlichen Parameter verwendet, die dir die vollständige Ausgabe sowie den Rückgabewert des Shellscripts geben?

Gruß
Christian

heyko

Anmeldungsdatum:
13. Juli 2005

Beiträge: 281

Wohnort: Esens

1) du solltest immer den vollständigen pfad verwenden also von / aus...
2) wenn du über deinen webserver eine php datei öffnest die ein shell command auslöst dann passiert das mit den rechten mit denen apache gestartet wurde also z.b. www-data also muss der benutzer auch berechtigt sein das script ausführen zu dürfen

ich verstehe nicht ganz wie du das in deinem post gemeint hast aber wenn ich es richtig verstehe ist bei dir der absolute pfad
/var/www/home/admin/gameserver/server1/cod2/restart.sh

PS: ein Tip denke garnicht daran Apache als Root zu starten ☺

Antworten |