Zugriff ausserhalb des cgi-bin

Alles, was den Apache betrifft, kann hier besprochen werden.

Zugriff ausserhalb des cgi-bin

Postby Kessi » 07. September 2006 22:37

Hi everyone

Mein CGI-Skript generiert folgenden HTML-Text:

"...
<img src="../img/background.jpg">
..."

mein CGI verzeichnis ist "/usr/www/cgi-bin/", das betreffende Bild befindet sich in "/usr/www/img/". Leider wird es nicht angezeigt, obwohl das "img"-Verzeichnis dieselben Berechtigungen wie das "cgi-bin" gesetzt bekommen hat :(

Woran kann das liegen?

Danke und Gruss
Kessi
Kessi
 
Posts: 4
Joined: 07. September 2006 22:24

Postby KingCrunch » 08. September 2006 00:46

Inwiefern "es wird nicht angezeigt"? Stehts garnet erst im Quelltext (Fehler im Script) oder gibs nen Badlink auf das Bild (Berechtigung, Existenz, ...)?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Kessi

Postby Kessi » 10. September 2006 13:20

Hey King

Das HTML-Dokument wird korrekt erstellt und auch als selbiges angezeigt. Die fehlenden Bilder sind somit Badlinks (rote Kreuzchen :P). Wenn ich mir aber die Properties der Bilder anschaue, stimmt der Pfad ganz genau, also kann es sich nur um ein Zugriffsproblem handeln.

Ich habe auch schon versucht, das Bildverzeichnis ins cgi-bin zu kopieren (also "/usr/www/cgi-bin/img/" statt "/usr/www/img/", natürlich mit angepassten Verweisen im HTML :), leider selbes Ergebnis. Das habe ich mir allerdings so erklärt, dass meine Bilder beim Aufruf ebenfalls als CGI-Skripte interpretiert werden (weil sie sich ja im CGI-Bin befinden) und deshalb nicht angezeigt werden können.

Um dieses Problem zu beheben habe ich mein cgi-bin aus "ScriptAlias" entfernt und stattdessen eine Directory-Direktive erstellt. Das ganze sah dann so aus:

ScriptAlias /cgi-bin/
[...]
<Directory "/usr/www/cgi-bin">
AllowOverride None
Options +ExecCGI
AddHandler cgi-script cgi
Order allow,deny
Allow from all
</Directory>

Allerdings konnte ich so gar keine CGI-Skripts mehr ausführen, was für mich bedeutet, dass meine doofe Embedded Version von Apache diese Variante gar nicht kennt :(

Da ich allerdings meine Bilder sowieso nicht im cgi-bin ablegen möchte, sondern an einem allgemeinen Ort, habe ich mich am Ende ohnehin für den Pfad "/usr/www/img/" entschieden :D, wo mein CGI-Prozess aber keinen Zugriff zu haben scheint :(.

Tja, und da auf diesem Verzeichnis dieselben Berechtigungen wie auf meinem cgi-bin "/usr/www/cgi-bin/" liegen ist meine Frage ganz einfach: Warum ? :wink:

Danke für eure Antworten und greeetz
Kessi
Kessi
 
Posts: 4
Joined: 07. September 2006 22:24

Postby deepsurfer » 11. September 2006 10:56

Mit was wurden die Bilder in das Verzeichnis hochgeladen ?
Klingt nach CHOWN und CHMOD Fehler

CHOWN = Gruppenrichtlinien
CHMOD für Bilder auf 644
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Kessi

Postby Kessi » 11. September 2006 15:05

Naja, mit WinSCP halt. Die Berechtigungen sind für die Bilder tatsächlich auf 644 gesetzt, das gilt allerdings auch für alle anderen Bilder, die ich nicht aus einem vom CGI-Prozess erstellten HTML-File anzeige. Und dort klappt's problemlos.

Was meinst du mit CHOWN - CHMOD Fehler? Habe ich gerade eine klassiche Berechtigungssünde begangen :) ?

Gruss
Kessi
Kessi
 
Posts: 4
Joined: 07. September 2006 22:24

Postby deepsurfer » 11. September 2006 16:12

Was meinst du mit CHOWN - CHMOD Fehler? Habe ich gerade eine klassiche Berechtigungssünde begangen


Mit welchem Usernamen hast du mittels WinSCP hochgeladen ?, so wie sich das anhört hast du es als <root> gemacht.

mach mal ein chown nobody.root bildname.jpg (gif/bmp/etc.etc.) im Pfad wo das Bild liegt.


CHMOD hast du ja schon bestätigt... 644 iss Ok.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Kessi

Postby Kessi » 12. September 2006 23:02

Hi again

Danke für deine Hilfe, aber ich glaube, ich habe den Fehler gerade isoliert. Und, naja, wie so oft ist er wohl zwischen Tastatur und Stuhl entstanden :oops: ...

Mein Default Web-Verzeichnis ist nämlich "/usr/www/html/" und wird direkt über die IP meines geräts angesprochen.

Mein CGI-Bin ist das Verzeichnis "/usr/www/cgi-bin/" und hört auf die URL "http://meineIP/cgi-bin/". Tja, und wenn ich nun aus dem cgi-bin zu den Bildern unter "/usr/www/html/img/" wechseln will, hab' ich 2 + 2 zusammengezählt und den Pfad auf "../html/img/" gesetzt.

Das Problem: Wenn mand diesen relativen Pfad von der URL aus betrachtet, ergäbe das "http://meineIP/html/img/". Da das html-Verzeichnis aber als Default-Verzeichnis gilt, lautet die korrekte URL "http://meineIP/img/". Und relativ von "http://meineIP/cgi-bin/" aus ist das halt "../img/" und nicht "../html/img/" :lol:

Falscher Alarm also. Sry :wink: . Trotzdem Danke für die vielen Tips. Mich beschleicht so ein Gefühl, als ob die mir im Ernstfall nämlich doch noch nützlich werden könnten :idea:

Bis bald also und greeetz
Kessi
Kessi
 
Posts: 4
Joined: 07. September 2006 22:24

Postby deepsurfer » 13. September 2006 10:52

Null Problemo.....

Mal auch in die LOGfiles schauen, darin wird meisten direkt angezeigt wenn der Apache etwas nicht findet was aber vom Code her gefordert wird.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian


Return to Apache

Who is online

Users browsing this forum: No registered users and 235 guests