77681
Goto Top

perl skript aus php skript, das vom BROWSER gerufen wird, ausführen

windows 2003 server, IIS 6.0, parallels
php seite soll perl skript aufrufen, wenn durch Browser geöffnet.

Hallo Leute,
auf meinem webserver, win2003, parallels, liegt ein einfaches php-skript, das ein perl skript aufruft.
wenn ich mich per RDP einlogge und dieses php skript aufrufe, wird das php und das perl korrekt ausgeführt.
(beide erzeugen lediglich eine datei).
wenn ich das php skript allerdings per browser irgendwo aus dem internet aufrufe, wird NUR DER PHP teil ausgeführt.

- IIS 6.0
- Perl und PHP-extensions sind installiert und zugelassen
- der internetuser hat ausreichende Rechte im entsprechenden Verzeichnis (lesen/schreiben, etc.

kann mir jemand sagen, was ich tun muss, damit das funktioniert ?

Vielen Dank

Content-Key: 114044

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

Printed on: April 25, 2024 at 00:04 o'clock

Member: maretz
maretz Apr 16, 2009 at 18:12:44 (UTC)
Goto Top
Zuerst musst du uns mal ne Glaskugel schenken damit wir den Quellcode deines PHP-Scriptes lesen können - zumindest den Teil indem du das Script aufrufst...
Mitglied: 77681
77681 Apr 16, 2009 at 19:11:08 (UTC)
Goto Top
Hallo,
vielen dank für die antwort.

das php skript:

<html>
<body>
<?php
$ourFileName = "php_erstellt.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fwrite($ourFileHandle,"hallo ");
fwrite($ourFileHandle,$ret);
fclose($ourFileHandle);

$ret = system("perl create_file.pl aus_php");
?>
Hallo
</body>
</html>


das perl skript:
open (TXT, ">perl_erstellt.txt") or Win32::MsgBox("Die Datei konnte nicht geöffnet werden: $!\n");
print TXT "parameter fuer skrip=$ARGV";
close TXT;

(der parameter wird nicht übergeben, sollte aber kein problem sein)

wie gesagt, lokal (auf meinem server) werden beide dateien erstellt.
rufe ich aber das php skript von aussen via browser aus, erstellt nur das php skript die datei. perl schweigt.

später möchte ich aus dem perl skript noch eine dll aufrufen.

jede hilfe ist willkommen
Member: maretz
maretz Apr 16, 2009 at 20:52:45 (UTC)
Goto Top
Meine erste idee ist dein system-call... perl create_file.pl aus_php :

Da du im Webserver keine Path-Variable hast (zumindest nicht die, die du auf der Shell hast) weiss er ggf. nicht wo er die perl.exe (oder whatever das bei windows is) findet. Dann weiss er nicht in welchem Ordner er create_file.pl und aus_php finden soll...

Lösung: Pfade mit angeben!
Mitglied: 77681
77681 Apr 16, 2009 at 21:50:58 (UTC)
Goto Top
Hallo maretz,
das funktioniert leider auch nicht. Im IIS unter weberweiterung muss man ja festlegen, welche skripte erlaubt sind
und dazu die pfade zu den executables angeben.
habe versucht den pfad zum perl-skript genau anzugeben \\ oder /. nichts.
wie gesagt, per webbrowser führt er nur das php aus.
lokal auf dem server führt er das php aus UND das perl, das aus dem php gerufen wird.
scheint eine schwierige sache zu sein...