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-ID: 12500

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

Ausgedruckt am: 22.11.2024 um 08:11 Uhr

13369
13369 30.06.2005 um 18:20:09 Uhr
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
czech
czech 01.07.2005 um 08:50:07 Uhr
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
13369
13369 02.07.2005 um 15:51:49 Uhr
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
czech
czech 05.07.2005 um 09:25:13 Uhr
Goto Top
Danke!

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

mfg
Christian
13369
13369 05.07.2005 um 10:51:35 Uhr
Goto Top
hmm... davon habe ich keine Ahung, aber ich nehme mal an, dass es da auch irgendwie ein Supportforum gibt.

Markus
czech
czech 19.07.2005 um 08:53:03 Uhr
Goto Top
Hallo noch mal!

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

Christian
pixelraider
pixelraider 23.08.2005 um 15:47:45 Uhr
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 ?
reini423
reini423 02.11.2005 um 18:46:29 Uhr
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.