Moritz: apache ignoriert Dateien von außen

Hallo,

ich habe folgendes Problem:
Mein /usr/lib/cgi-bin/elephant/main.pl gibt wunderbaren Code aus, der auch, wenn ich ihn in einer Datei speicher und mit firefox öffne (anklicke), wie gewollt dargestellt wird.
Gebe ich in die Adressleiste von meinem browser http://localhost/cgi-bin/elephant/main.pl ein, werden alle 'externen Dateien' (Bilder und CSS) ignoriert.

Am Anfang dachte ich, dass apache vielleicht einen eigenen perlinterpreter benutzt, der irgendwie falsch eingestellt ist. Nachdem ich apache2 mit apache-perl (deb-packet, bei dem mod_perl schon integriert ist) neu aufgesetzt habe, ist mir aber aufgefallen, dass es daran nicht liegen kann. Einerseits, weil durch Eingabe in die Adressleiste aufgerufene, reine html-Seiten die selben Fehler aufweisen und andererseits, weil auch der Quelltext von den 'CGI-Seiten' korrekt ist.
Apache-perl habe ich nach diesem Gedanken wieder durch das 'normale' apache2 ersetzt.

Dann wurde meine Aufmerksamkeit auf mime-types gelenkt. Meine /etc/appache2/apache2.conf (meine /etc/appache2/httpd.conf ist leer (Ubuntu Dapper)) verweißt: "TypesConfig /etc/mime.types". In dieser Datei sind viele Typen aufgelisten. Unter anderem auch: "text/css css". Also kann es auch nicht hieran liegen.
Hier aber trotzdem mal meine apache2.conf: http://www.ubuntuusers.de/paste/4076/

Nun habe ich noch 2 Stunden in http://httpd.apache.org/docs/2.2/new_features_2_0.html gelesen. Hier bin ich auch nicht weiter gekommen.

Ich würde mich über Hilfe sehr freuen!
Gruß
Moritz

  1. Hi Moritz,

    Mein /usr/lib/cgi-bin/elephant/main.pl gibt wunderbaren Code aus, der auch, wenn ich ihn in einer Datei speicher und mit firefox öffne (anklicke), wie gewollt dargestellt wird.
    Gebe ich in die Adressleiste von meinem browser http://localhost/cgi-bin/elephant/main.pl ein, werden alle 'externen Dateien' (Bilder und CSS) ignoriert.

    Wie bindest du Bilder und CSS ein? Bzw. genauer gesagt kommt es auf den Pfad zu den Bild- bzw. CSS-Dateien an - das hört sich so an, als hättest du da irgendeinen Fehler gemacht ;-)

    Poste doch einfach mal den <img>-Tag eines Bildes, welches nicht korrekt angezeigt wird - sonst kann man hier wirklich nur raten, ich weiß ja nicht auf was für Ideen du kommst was man alles falsch machen kann. Ansonsten mach mal Rechtsklick -> Grafik anzeigen auf ein nicht-geladenes Bild, dann siehst du in der Adressleiste den Pfad unter dem Firefox versucht das Bild anzufordern (was offensichtlich fehlschlägt).

    Viele Grüße aus Kanada,
      ~ Dennis.

    1. Ahoy über den Atlantic!!! :)

      Was ich bei meinem Problem so bemerkenswert finde ist, dass ich bei Aufrufen durch Doppelklick auf die main.html alles super dargestellt bekomme, bei Aufrufen über die firefox-Adresszeile:"http://localhost/~elephant/main.html" nur Text bekomme. Es werden noch nichtmals Rahmen für das Bild eingefügt! Das gleiche passiert, wenn ich es über das mein CGI probiere.

      1. Einbindung von Bild und CSS in main.html:
      a)
      <link rel="stylesheet" media="screen" type="text/css" href="/home/tellerschnecke/public_html/elephant/styles/website.css">

      b)<img src="~tellerschnecke/public_html/elephant/templates/images/balken.jpg" alt="working with the elefant" usemap="balken" border="0" margin-left="0">

      2. Die ganze main.html:
      http://www.ubuntuusers.de/paste/4082/
      (Der <script>-Tag ist quatsch)

      3. meine website.css (wird auch nicht verarbeitet):
      http://www.ubuntuusers.de/paste/4083/

      4. Und mein erstes perl-CGI:
      http://www.ubuntuusers.de/paste/4084/
      (Der <script>-Tag ist quatsch)

      Mit besten Grüßen,
      Moritz

      1. hallo Moritz,

        Was ich bei meinem Problem so bemerkenswert finde ist, dass ich bei Aufrufen durch Doppelklick auf die main.html alles super dargestellt bekomme, bei Aufrufen über die firefox-Adresszeile:"http://localhost/~elephant/main.html" nur Text bekomme.

        Das heißt, dein Script wird nicht interpretiert. Bedenke bitte, daß der Apache unter /cgi-bin vermutlich etwas anderes versteht als /usr/lib/cgi-bin. Apache geht nicht von der Systemwurzel aus, sondern vom DocumentRoot. Und /usr/lib gehört mit an Sicherheit grenzender Wahrscheinlichkeit nicht in die DocumentRoot.

        1. Einbindung von Bild und CSS in main.html:
          a)
          <link rel="stylesheet" media="screen" type="text/css" href="/home/tellerschnecke/public_html/elephant/styles/website.css">

        Sehr ominös. Worauf zeigt denn "/" deines Apache? Also: welche Seite siehst du, wenn du lediglich http://localhost aufrufst?

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
      2. Hey,

        href="/home/tellerschnecke/public_html/elephant/styles/website.css"
        src="~tellerschnecke/public_html/elephant/templates/images/balken.jpg"

        möchtest du lokale Dateien aufrufen? Dann benötigst du das file:/-Protokoll. http://de.selfhtml.org/html/verweise/projektextern.htm#beispiele
        Beachte, dass Opera das aus Sicherheitsgründen nicht mehr zulässt, wenn das einbindende aus dem Web kam.

        --
        水-金-地-火-木-土-天-海-冥
        1. Hallo,

          es liegt wirklich an der Adressierung! localhost ist bei mie /var/www!
          Wenn ich von daus referenziere klapt es!

          Vielen Dank für eure Hilfe!
          Mich hat das ganze einen Tag lang aufgehalte und nun bin ich sehr froh den Fehler behoben zu haben (und das ganz ohne apache2.conf".

          Tschüss,

          Moritz