Ab und an ist bin ich gezwungen, CGI-Scripts unter Windows zu schreiben bzw. zu testen, die anschließend auf einem Unix-Server laufen sollen. Einziges Problem dabei: Die Shebang-Zeile am Anfang jedes Scripts.
Unter Unix verwendet man z.B. für Perl-Scripts standardmäßig #!/usr/bin/perl
, für
Windows bräuchte ich aber etwas wie #!c:/programme/perl/bin/perl.exe
.
Um diese Zeile nicht in jedem Script ändern zu müssen (fehleranfällig und zeitraubend), gibt es in der Apache-Konfiguration jedoch die Direktive ScriptInterpreterSource registry-strict, wodurch der Apache unter Windows die Shebang-Direktive nicht mehr beachtet, sondern die Registry zu Rate zieht, um herauszufinden, welches Kommando mit dem Dateityp verknüpft ist.
Um aber nicht die entsprechenden Dateitypen auch bei Ausführung des CGI-Scripts mit den Standard-Anwendungen zu öffnen (bei mir z.B. mein bevorzugter Perl-Editor), pfuscht man kurz vorher noch in der Registry herum (Achtung, nicht ganz ungefährlich!):
HKEY_CLASSES\ROOT
den Inhalt des Standard-Schlüssels (bei mir z.B. "pl_auto_file". Unterhalb dieses neuen Schlüssels geht es jetzt weiter.
Shell\ExecCGI\Command
.
Das funktioniert natürlich auch mit Python-Scripts und beliebigen Datei-Endungen.