Batch via PHP auf Server starten

Eigener Bereich für die Entwickler unter uns! Add-Ins, aber auch andere Programme.
Antworten
Joker45b
Foren-Einsteiger
Beiträge: 9
Registriert: 7. Dez 2008, 16:45

Batch via PHP auf Server starten

Beitrag von Joker45b » 4. Feb 2011, 17:36

Hallo WHS-Fans :D

ich hoffe Ihr könnt mir helfen, denn zum ersten mal verzweifele ich hier an einem Problem und weder Google noch Forensuchen konnten mir weiterhelfen. Ich knacke da nun schon seit 4 Tagen dran... KRIESE!

Mein Vorhaben; Via Internet ein PHP Script aufrufen, welches auf dem Server eine BatchDatei ausführt.
Ziel: Einige Programme und Dienste die ganz gerne mal abschmieren (z.B. WME9) neu starten OHNE den Umweg über die Konsole zur fernwartung gehen zu müssen.

Die Batchdatei an sich ist fertig und läuft. Da drin bin ich ja auch fit.

Nun habe ich im Netz nach zig Lösungen gesucht eine PHP zu schreiben, welche mir die Batch Datei startet und mittlerweile glaube ich, das Problem liegt an meinem System.
Ich habe sowohl mit manueller PHP Installation rumprobiert, wie auch mit automatischer.
Derzeit ist der Stand der, dass ich Mit dem PHP-Installer 1.04 die version PHP 5.2.6 installiert habe.

Zum Testen habe ich derzeit eine PHP Datei mit folgendem Inhalt im wwwroot:
<?php
$tmp = exec("C:\\Inetpub\\wwwroot\\restartVME.cmd");
?>

Ausgabe = 0 und es passiert auch nichts.

Falls es an meiner Config liegen könnte, hier die Info: Info.php

Als Ausgabe auf dem Browser kommt nichts. Auch ein Prozess wird nicht gestartet.
Ich hoffe jemand kann mir helfen.

Falls das auch eine Fehlerquelle ist; Berechtigung. Ich habe IUSR_Server die Berechtigung zum ausführen gegeben. Darüber hinaus noch kin Berechtigung erteilt.
Noch teste ich auch Lokal auf dem WHS.
Später wünsche ich mir das ohne Login oder derartiges, nur mit simplen Start der PHP.

Hiiiiilfe :P und vielen lieben Dank vorab.

Ingo

Benutzeravatar
AliG
Moderator
Beiträge: 3723
Registriert: 6. Jun 2007, 17:33
Wohnort: Salzburg, Österreich

Re: Batch via PHP auf Server starten

Beitrag von AliG » 4. Feb 2011, 18:29

Hi!

Schau mal hier: http://www.php.net/manual/de/function.exec.php#85930, da beschreibt einer wie er das zum Laufen gebracht hat ;-)
Anscheinend musst du cmd.exe mit dem Batchfile als Parameter aufrufen.

lg Alex
Mache ich etwas richtig, merkt es keiner. Mache ich etwas falsch, vergisst es keiner. :D

Mein WHS

Joker45b
Foren-Einsteiger
Beiträge: 9
Registriert: 7. Dez 2008, 16:45

Re: Batch via PHP auf Server starten

Beitrag von Joker45b » 4. Feb 2011, 19:46

Erstmal vielen Dank :!: :!: :!:
Das hat mich schonmal dahingehend weiter gebracht das ich nun den Output: No input file specified. bekomme.

Vielleicht liegt mein Fehler in etwas simplen was ich nur wieder nicht sehe.
Also in der php.ini hab ich nun auf verdacht zum testen erstmal alles reingehauen was an pfaden nötig sein könnte. (evtl auch falsch oder zu viel !?!)
include_path = ".;c:\php5\includes;c:\inetpub;%systemroot%\system32;C:\Inetpub\wwwroot\blog"
doc_root = "C:\Inetpub\wwwroot\blog"
user_dir =
extension_dir = "c:\php5\ext"
enable_dl = On

Zuvor hatte ich Wordpress installiert um zu sehen ob php überhaupt anständig läuft. Nun arbeite ich zu testzwecken erstmal mit dem blog (wordpress) verzeichnis.

Diese Zeile der Anleitung hab ich "ausgelassen" da ich nicht weis wo ich den pfad angeben soll. (ist die php.ini gemeint !?!)
5. Specified the full path to each file being executed.

Hab ich erstmal mit in die ini eingetragen:
7. Ensured that %systemroot%\system32 is in the system path.

Die php datei schaut nun so aus:
<?php
$output = exec("c:\\windows\\system32\\cmd.exe /c $restartVME.cmd");
?>
wobei die php UND die cmd im selben Ordner(Blog) liegen.

Eine Idee wo ich da wieder nen Bock geschossen habe?

Benutzeravatar
AliG
Moderator
Beiträge: 3723
Registriert: 6. Jun 2007, 17:33
Wohnort: Salzburg, Österreich

Re: Batch via PHP auf Server starten

Beitrag von AliG » 4. Feb 2011, 20:09

Hi!

Hast du denn den vollen Pfad zum .cmd file angegeben? Sind da Leerzeichen im Pfad?
Lass dir mal vorher das Kommando das du bei exec() aufrufst ausgeben, um zu sehen ob das überhaupt richtig ist.

lg Alex
Mache ich etwas richtig, merkt es keiner. Mache ich etwas falsch, vergisst es keiner. :D

Mein WHS

Joker45b
Foren-Einsteiger
Beiträge: 9
Registriert: 7. Dez 2008, 16:45

Re: Batch via PHP auf Server starten

Beitrag von Joker45b » 4. Feb 2011, 20:20

Wo meinst Du nun.. In der php? Da habe ich es auch mit dem vollen Pfad versucht. Also:
C:\Inetpub\wwwroot\blog\restartVME.cmd
Leider mit dem selben Ergebnis.
Da ich in der php.ini aber auch schon doc_root = "C:\Inetpub\wwwroot\blog" angegeben hatte, ging ich von aus, der schnallt das die Datei da liegt.
Aber meine VB und Batch kenntnisse kann ich mit php wohl vergessen...

via cmd bei eingabe von C:\php5\php.exe $output = exec("c:\\windows\\system32\\cmd.exe /c $restartVME.cmd"); sagt er mir: Could not Open Outputfile.

Nur zur Sicherhit. Die Berechtigungen für alle Files muss das Interntgastkonto IUSR_usw haben.. Weil ich vermute fast das ist ein Berechtigungsproblem.

Joker45b
Foren-Einsteiger
Beiträge: 9
Registriert: 7. Dez 2008, 16:45

Re: Batch via PHP auf Server starten

Beitrag von Joker45b » 4. Feb 2011, 21:13

Ok.. ich habe nun mal die wscript methode via php versucht:
<?php
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("restartVME.lnk", 3, false);
?>

und es kommt ebenfalls die Ausgabe: No input file specified

Irgendwo ist da noch generell der Wurm drin...

der-Leo
Foren-Mitglied
Beiträge: 649
Registriert: 30. Aug 2009, 13:32
Kontaktdaten:

Re: Batch via PHP auf Server starten

Beitrag von der-Leo » 7. Feb 2011, 14:35

exec("c:\\windows\\system32\\cmd.exe /c restartVME.cmd");

Wozu hattest du das Dollarzeichen drinnen?
Damit hat PHP versucht eine Datei deren Name in der Variable $restartVME aufzurufen.
Und da du die nrgends deklariert hast kann das natürlich nie und nimmer klappen.
Also lass es weg und fertig.

Joker45b
Foren-Einsteiger
Beiträge: 9
Registriert: 7. Dez 2008, 16:45

Re: Batch via PHP auf Server starten

Beitrag von Joker45b » 7. Feb 2011, 14:59

Hatte ich alles schon erfolglos versucht.

Problem war unterm Strich die Berechtigung. Das habe ich nun gelöst und alles klappt wie am Schnürchen.

Vielen Dank für Eure Hilfe!!!

Antworten