Alexander Foken: Apache: .exe CGI-Script unter Windows

Beitrag lesen

Moin Moin !

Halihallo Alexander

Probier mal aus, die EXE aus einem Perl-Script heraus aufzurufen, das vom Apachen gestartet wird:

Wenn man mit den Varianten von dir die test.exe entweder über
Backticks oder Pipes einliest würde man vermuten, dass die .exe
einfach gar nix ausgibt (so sieht es aus). In Wahrheit vermute ich,
dass auch der perl-Interpreter ein Access Denied bekommt und die
Skalare einfach mit undef besetzt.

Lassen wir das Vermuten mal sein:

#!perl
$|=1; # unbuffered output
print "Content-type:text/plain\r\n\r\n";
print "Starte EXE ...\n";
$rv=system("D:\path\to\simplecgi.exe");
print "Ende EXE. Ergebnisse: wait result=$rv, exit codes=$?\n";

Das sollte auf jeden Fall etwas ausgeben, $rv sollte 0 sein, exit code eigentlich auch.

Aus perlfunc#system:

The return value is the exit status of the program as returned by the wait call. To get the actual exit value divide by 256. See also exec. This is not what you want to use to capture the output from a command, for that you should use merely backticks or qx//, as described in perlop/```STRING`''. Return value of -1 indicates a failure to start the program (inspect $! for the reason).

You can check all the failure possibilities by inspecting $? like this:

$exit_value  = $? >> 8;
$signal_num  = $? & 127;
$dumped_core = $? & 128;

Aber die Erfahrung mit
Windows leert eines: "Rebooten ist nie falsch."

Standard-Spruch, wenn wieder hilfesuchende Kollegen Entwickler und Supporter verwechseln: "Reboot tut immer gut" -- und beschäftigt den Kollegen eine Weile. ;-)

Wenn's aus Perl läuft und direkt nicht, dann hast Du "ein echtes Problem"(TM) ;-)

Nun ja, es funktioniert auch aus Perl aus nicht und dennoch habe ich "ein echtes Problem"(TM) :-)

Aber ein Perl-Hello-World-CGI funktioniert definitiv?

#!perl
print "Content-type:text/plain\r\n\r\nHello World\n";

Probier's einfach mal aus, ich vermute schleichende Betriebsblindheit ... ;-)

Alexander

--
Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".