CGI-Verzeichnis auf FAT32 (Problemlösung)

Inhalt:

mättu hat im Forum über die Probleme berichtet, die ein zentrales CGI-Verzeichnis auf FAT32 auslösen kann...

Hallo Freunde des Perl
smile

Nachdem ich heute bereits lange an meinem Verstand gezweifelt hatte, bin ich jetzt auf die Lösung gekommen. Weil ich auf diesem Forum herumgesucht habe und viel in die Richtung, nicht aber die Lösung gefunden habe, hier mein Erlebnisbericht:

Ausgangslage: - Dual-Boot PC Windows XP / Ubuntu - Linux
- Verzeichnis mit Arbeitsdaten auf FAT32, damit es beide Systeme lesen & schreiben können.
- Apache2-Webserver mit auf beiden Systemen sollen auf selbes Verzeichnis zugreifen.
- Funktioniert auf Windows

Problem:
- CGI-Perl-Skripte auf der FAT32 erzeugen auf Linux im Apache immer einen 500er-Fehler. "Premature end of script headers"
- Error-Log redet von "permission denied"
- Kopiert man das Script in den Standard-CGI-Ordner, geht es
- Lässt man das Script auf der Konsole laufen, geht es auch.

Fehler:
Man denkt:
- Es hat entweder mit der Apache-Konfiguration zu tun
- Oder mit dem Perl-Script
- Oder mit der Zeichenkodierung der Partition
- Oder mit dem Texteditor von Windows
- oder...

Dann hört man auf zu denken und haut den Kopf an die Wand.

Lösung:
- HD muss mit Option "exec" gemountet werden.

Bsp:
/etc/fstab:
/dev/hda2 /media/hda2 vfat rw,auto,user,exec,fmask=0000,dmask=0000 0 0

Glaubt mir Freunde, ich hab mir in die Stirn gebissen. Wie kann man nur so doof sein.
Allerdings bin ich damit nicht ganz allein. Wenn man so im Internet herumsucht..

Wenn ein Script immmer nicht läuft, hängt es vielleicht auch damit zusammen, dass Linux eine andere Kodierung für Zeilenumbrüche hat als Windows. Also muss man das liebe File im Linux öffnen, nach der #!-Zeile ein Enter einfügen und es läuft.
Auch darüber kann der Laie lange, lange nachdenken.

Und die #!-Zeile muss korrekt sein. Das fällt einem nicht auf unter Windows, weil sie dort wegen der abgefeimten registry-Anweisung des Apache völlig unnötig ist.

So. Jetzt wirds mir aber langsam zu peinlich. wink

Hoffe jedenfalls, es hilft anderen armen Seelen weiter. Klarklar, ihr Experten findet das alles logisch. Aber nicht jeder kann ein ganzes Informatikstudium absolvieren, nur um ein wenig einen apache lokal zu fahren.
Von Perl oder perl oder pERL oder PeRl? gar nicht zu reden. Da blick einer durch.

Grüsse
:m)

Ergänzungen, Kommentare

PlTk - 13 Feb 2006 - Erklärung fürs Shebang

Die Erklärung ist einfach. Wenn man unter Windows editiert, sieht die Shebang-Zeile so aus: #!/usr/bin/perl\r\n. Linux/Unix wertet die Zeichenkette zwischen #! und \n aus, um den zu ausführenden Befehl zu erhalten: /usr/bin/perl\r. Dieser Befehl wird ausgeführt - geht natürlich nicht, existiert ja auch nicht (aber der interessierte Benutzer kann ja eine Kopie von "perl" als "perl\r" anlegen, dann sollte es funktionieren). Die einfachste Lösung: irgendeine Option an den perl-Pfad anhängen, z.B. -w. Dann kriegt das Betriebssystem /usr/bin/perl mit, der Rest wird an Perl übergeben, und Perl scheint kein Problem mit \r zu haben.

Kommentare werden am besten in folgender Form vorgenommen, damit sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---+++ Main.??? - 14 Jul 2003 - Betreff

UtilFaqSubForm edit

Titel CGI-Verzeichnis auf FAT32 (Problemlösung)
Autor ReneeBaecker
Bereich FaqCGI
Tags CGI, FAT32
Topic revision: r3 - 2007-05-25 - 19:08:41 - TinaMueller
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.