9/07: Execute programs in PHP

Problem: ich will auf einem (Windows)Server eine Applikation ausführen. Dies soll per PHP geschehen.
Lösung: Mit der Funktion exec('program.exe'); kann man beliebige Programme auf dem Server ausführen, ob Windows oder Linux spielt keine Rolle. So konnte ich per PHP eine C#-Applikation starten.
Zu beachten ist: falls bei der PHP-Konfiguration safe_mode eingeschaltet ist (=on) können keine beliebigen Programme ausgeführt werden. Es muss dazu die Variable safe_mode_exec_dir in der PHP-Konfiguration (php.ini) gesetzt werden. Dort wird der absolute Pfad zu einem Verzeichnis definiert, aus dem Programme per exec() gestartet werden dürfen. In meinem Fall heisst die Zeile in der php.ini:
safe_mode_exec_dir = c:/Programme/xampplite/htdocs/exec/
Im Code sieht es so aus:
$id = exec("program.exe");
Das Arbeitsverzeichnis ist das, in dem sich das PHP-Script befindet, nicht in dem des exec-Programms. Das Programm (program.exe) befindet sich im definierten exec-Verzeichnis.

1 Kommentar »

  1. 1. Levente Maier wrote:

    Super Eintrag, genau das habe ich benötigt. Danke

    26. April 2007 @ 08:25 (comment)

Hinterlasse einen Kommentar

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(req)

(req, never shown)

Note: Spam control is in use - if this is your first comment, it will be automatically sent for moderation. Other moderation is carried out on a per-post basis.