perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 31
Click for quality!




11.02.2012 / 17:27

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragCGI Fehler: unable to require
Seitenanfang
Hallo Zusammen!
Eins vorweg: Ich muss leider zugeben, dass ich zwar sehr viel Ahnung von PHP habe, aber weniger von CGI. Habe meinen Server gewechselt und bin von einem Linux auf einen Windows 2003 Server (PLESK) umgestiegen.

Ich hatte auf dem Linuxserver einen Shop laufen, welchen ich jetzt auch auf meinem Windowsserver eingerichtet habe, jedoch erhalte ich immer folgende Fehlermeldung:
"I am sorry but I was unable to require ./cgi-lib.pl at line 43 in ******\cgi-bin\shop\shop.cgi. Would you please make sure that you have the path correct and that the permissions are set so that I have read access? Thank you."

Woran könnte es scheitern?
Ich habe alle Dateien 1:1 vom Linuxserver übernommen.

Auf dem Linuxserver war es jedoch so, dass in jedem Verzeichniss CGI ausgeführt werden konnte und soweit ich das jetzt sehe, funktioniert das auf dem Windowsserver nur im cgi-bin-Verzeichnis.

Gruß

Brovning

Datum: 12.03.2006-20:22

Beitragre: CGI Fehler: unable to require
Seitenanfang
Dann schau doch mal, ob das cgi-lib.pl-Skript auch wirklich unter cgi-bin\shop\ liegt... Wo etwas ausgeführt werden kann, ist alles Sache der Konfiguration...

Datum: 13.03.2006-13:58

Beitragre: CGI Fehler: unable to require
Seitenanfang
Hi,

[cite]
... dass in jedem Verzeichniss CGI ausgeführt werden konnte ...
[/cite]

Quelle fauxpas!

Das sollte die Regel sein, dass CGIs nur in den dafür vorgesehenen Ordnern ausgeführt werden dürfen.

-uw

Datum: 13.03.2006-19:08

Beitragre: CGI Fehler: unable to require
Seitenanfang
Das Problem ist ein ganz dummes, dass nur unter windows auftaucht - und zwar geht windows standardmässig nicht vom Script aus, wie unter Linux (wie es eigentlich logisch wäre), sondern von ??? - ist nicht immer gleich, aber manchmal vom temp-Verzeichnis des Webservers. Wenn Du nun relative Pfade verwendest, die vom aufgerufenen Script ausgehen, dann klappt das nicht, weil der Server die require-Dateien von ganz wo anders sucht. Die Lösung ist, dass Du am Beginn des Scripts in das aktuelle Verzeichnis wechseln musst und das kann man ganz allgemein so machen

$0 =~ /^(.*)[\/\\].*/ && chdir ($1) ;

einfach an Anfang eines Scripts packen und es sollte gehen.

Mfg
Marky

Datum: 13.03.2006-20:48

Beitragre: CGI Fehler: unable to require
Seitenanfang
Ein Grund mehr für mich, unter Linux mein zu Hause zu definieren.

-uw

Datum: 13.03.2006-21:16

Beitragre: CGI Fehler: unable to require
Seitenanfang
Ich würde eher sagen, man sollte grundsätzlich keine relativen Pfade verwenden.

Mfg
Marky

Datum: 13.03.2006-21:23

Beitragre: CGI Fehler: unable to require
Seitenanfang
Das sehe ich auch so.

Wenn man die Möglichkeit hat, auf die Konfiguration des Webservers Einfluss zu nehmen, dann plädiere ich für Aliase.

Somit schafft man sich einen absoluten Pfad ausgehend von DOCUMENT_ROOT. Die URL fügt der Browser ohnehin ein.

-uw

Datum: 13.03.2006-21:28

Beitragre: CGI Fehler: unable to require
Seitenanfang
Ein

use FindBin ();
require $FindBin::Bin.'/cgi-lib.pl'

finde ich da besser.

Aber generell sollte man besser das CGI-Modul verwenden anstatt des mittlerweile veralteten cgi-lib.pl...

Datum: 14.03.2006-11:16

Beitragre: CGI Fehler: unable to require
Seitenanfang
Das Modul FindBin habe ich neulich auch entdeckt, als ich auf der Suche nach Möglichkeiten für die Erstellung eines Installationsscripts war, für die leidige Eingabe der Plattenpfade. Weisst Du zufällig bei welchen Version das Modul standardmässig installiert ist. Wenn nicht kann ich es leider nicht verwenden.

Mfg
Marky

Datum: 14.03.2006-11:35

-






-
-