czech
Goto Top

Problem - PHP, IIS 6, Server 2003 - externe Programme aufrufen

Hallo!

Ich habe ein Problem beim ausführen externer Programme.
Wie schon Titel erwähnt handelt es sich um:

- PHP
- IIS 6
- Server 2003

Beschreibung:
Ich möchte über PHP ("system()", "exec()") ein Programm aufrufen (in diesem speziellen Fall Ghostscript, spielt aber keine Rolle, alle anderen Programme reagieren ähnlich).

Im TaskManager wird mir auch angezeigt, dass die cmd.exe und die gswin32c.exe ausgeführt werden. Jedoch bleibt die php Seite "hängen" und das Programm wird nicht weiter ausgeführt (0% Auslastung).

Ich habe bereits die entsprechenden Rechte für IUSR_XXX den Programmen zugewiesen (cmd.exe, gswin32.exe).

Hat jemand eine Idee woran es liegen könnte!?

Vielen Dank im Voraus!
Christian

Content-Key: 12500

Url: https://administrator.de/contentid/12500

Printed on: April 18, 2024 at 01:04 o'clock

Member: markus-so
markus-so Jun 30, 2005 at 16:20:09 (UTC)
Goto Top
Schau mal in phpinfo(), ob system und exec() ueberhaupt auf deinem Server erlaubt sind.

Es kann auch sein, dass sie nur teilweise erlaubt sind.

Gruss Markus
Member: czech
czech Jul 01, 2005 at 06:50:07 (UTC)
Goto Top
Schon mal vielen Dank für die schnelle Antwort!

Ist aber alles erlaubt!
Auch wenn ich einfach nur den Befehl system("dir"); ausführe bekomme ich auch die Verzeichnisstruktur angezeigt. Nur wenn ich ein Programm aufrufe wird es zwar gestartet (TaskManager-Prozesse) aber eben nicht ausgführt!?

mfg
Christian
Member: markus-so
markus-so Jul 02, 2005 at 13:51:49 (UTC)
Goto Top
Dann nehme ich an, dass system() und exec() aus Sicherheitsgruenden irgendwie beschraenkt sind.
Da habe ich aber nicht so viel Ahnung von diesen Einstellungen und kann dir nicht sagen, wie du das aendern kannst. Wende dich da am besten an deinen Anbieter, bzw. falls der Server in deinen eigenen Haenden ist, frag mal in Supportforum von Apachefriends. (http://www.apachefriends.org/f/)


Gruss Markus
Member: czech
czech Jul 05, 2005 at 07:25:13 (UTC)
Goto Top
Danke!

Aber es läuft ja kein Apache, sonder ein iis!

mfg
Christian
Member: markus-so
markus-so Jul 05, 2005 at 08:51:35 (UTC)
Goto Top
hmm... davon habe ich keine Ahung, aber ich nehme mal an, dass es da auch irgendwie ein Supportforum gibt.

Markus
Member: czech
czech Jul 19, 2005 at 06:53:03 (UTC)
Goto Top
Hallo noch mal!

Hat keiner ein weitere Idee!?
Konnte das Problem immer noch nicht lösen!

Christian
Member: pixelraider
pixelraider Aug 23, 2005 at 13:47:45 (UTC)
Goto Top
Hallo,

wenn alles richtig konfiguriert ist, wird es ohne den Code zu kennen schwer, das Problen zu lösen, was ist denn der Hintergrund, was soll das programm machen, eine PDF erstellen ?
Member: reini423
reini423 Nov 02, 2005 at 17:46:29 (UTC)
Goto Top
Das Problem kenne ich und konnte es leider nicht lösen, habe aber einen Workaround gefunden, wie man die Vorteile des IIS nutz und zusätzlich Apache einsetzt.

Vielleicht ganz kurz um IIS 6.0: Der IIS kann Systembefehle ausführen, wenn man die Windows-Authentifizierung aktivert (für die auszuführende Datei oder für das ganze Verzeichnis) und dann als Administrator auf den Webserver zugreift. (Man muss also nur lokal als Administrator angemeldet sein). Ist man hingegen als User angemeldet, dann geht das nicht, obwohl man den entsprenden Dateien die Rechte gibt. Warum das so ist, weiss ich leider nicht und scheinbar gibt es auch keine Möglichkeit dies zu ändern.

Da ich die Authentifizierung des IIS nutzen möchte hab ich einfach die Daten mit einem PHP-Skript in einer Session gespeichert und in einem Frame auf die Startseite des Apaches zugegriffen. Da der Browser sich die Session-Id merkt, brauch ich nicht einmal die ID mit zu übermitteln. Das PHP-Skript auf dem Apache-Server ließt diese Anmeldinformationen wieder aus und führt das Skript bzw. die Anwendung auf dem Server aus. Bei Apache gibt es diese Rechteprobleme nicht. Vielleicht hift diese Methode ja. Ach ja, Apache und IIS sollten auf verschiedenen Ports laufen.