Efchen: Perl-Skript unter dem Internet Information Server (IIS)

Beitrag lesen

Moin,

Die betreffende Zeile sieht so aus:
opendir(D, "data/templates") || die "Can't read DIR: data/templates!\n$!";

Wenn ich den Pfad vollständig angebe, bin ich einen kleinen Schritt weiter:
opendir(D, "e:/gis-forum/cgi-bin/data/templates") || die "Can't read DIR: data/templates!\n$!";

Aber das kann doch nicht die Lösung sein, oder?

Doch. In der Apache Doku steht irgendwo geschrieben, dass bei der Ausführung eines CGI-Scripts das Current Directory nicht eindeutig definiert ist. Relative Pfadangaben müssen daher nicht funktionieren. Es wird empfohlen, immer absolute Angaben zu machen.

Ich möchte einfach nicht sämtliche Pfade bei allen Skripten ändern, der Aufwand wäre einfach zu groß.

So wie ich das in Erinnerung habe (ich hab das damals gelesen, wie ich mir CGI beigebracht habe, daher weiß ich heute leider nicht mehr, wo genau das steht), ist das aber Voraussetzung, und Du kannst Dir mit Deiner Methode nicht sicher sein, dass Deine Scripts überhaupt funktionieren! Du hast demzufolge bisher großes Glück gehabt, und es ist empfehlenswert, die Änderung an allen Files durchzuführen.

Außerdem müßte es doch für ein solches eher allgemeines Problem eine generelle Lösung geben.

Ja, absolute Pfadangaben.

Zumindest hoffe ich, daß mir jemand einen Tipp geben kann.

Du kannst ja mal in der Apache-Doku danach suchen. Wie es aussieht, ist das Problem unter dem IIS das gleiche oder gar noch größer.

Gruß,
-Efchen