DocumentRoot Problem

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von tigerstyle, 12.02.2005.

  1. tigerstyle

    tigerstyle Thread Starter MacUser Mitglied

    Beiträge:
    391
    Zustimmungen:
    2
    MacUser seit:
    29.11.2004
    Hi,

    wenn ich ein File includen will mit:
    include("subfolder/file.inc.php");
    Dann klapp das ganz normal.
    Wenn ich jetzt aber ein File includieren will, welches in einem übergeordneten Verzeichnis liegt klappt das auf meiner lokalen Testumgebung nicht mehr.

    Auf dem Server im Internet ist /kunden mein oberstes Verzeichnis, aber lokal liegt es hier: /User/Tigerstyle/Sites/kunden
    DocumentRoot ist auf /User/Tigerstyle/Sites eingestellt.
    Wenn ich jetzt aber include("/kunden/subfolder/file.inc.php"); mache, dann sucht er, denk ich mal, wirklich ganz oben in /kunden obwohl es aber in /User/Tigerstyle/Sites/kunden liegt. Kann man irgendwo im Apache oder so einstellen, dass /Sites (s.o) das absolute Rootverz. ist und man nicht höher zugreifen kann?

    Ich hoffe mein Problem ist klar, und ihr könnt mit helfen.

    Danke schonmal.
     
  2. Nogger

    Nogger MacUser Mitglied

    Beiträge:
    367
    Zustimmungen:
    0
    MacUser seit:
    03.08.2004
    Alias /foobar "/User/Tigerstyle/Sites/"

    in die httpd.conf

    Apache neu starten, danach kannst du die Seite über http://localhost/foobar/ aufrufen.
     
  3. persil

    persil MacUser Mitglied

    Beiträge:
    199
    Zustimmungen:
    0
    MacUser seit:
    22.05.2004
    öhm. nö. außer du legst direkt auf deiner platte (quasi ganz unten, im root, wenn du doppelt auf deine platte im finder klickst ;-) ) nen ordner mit dem namen "kunden" an.
    ansonsten kannst du mit include('./ordner/file'); vom docroot aus adressieren.
     
  4. tigerstyle

    tigerstyle Thread Starter MacUser Mitglied

    Beiträge:
    391
    Zustimmungen:
    2
    MacUser seit:
    29.11.2004
    Das klappt leider nicht. Er findet immer noch nichts.
    Das will ich eben vermeiden. Das ist dann die letzte Möglichkeit.
    Aber ich dachte es gibt vielleicht noch mehr trickts in der httpd.conf oder php.ini?
     
  5. persil

    persil MacUser Mitglied

    Beiträge:
    199
    Zustimmungen:
    0
    MacUser seit:
    22.05.2004
    IMHO nicht. absolut adressieren ist eben absolut. da gibt es keinen weg dran vorbei ;-)

    öhm. meinst du jetzt das mit dem ordner anlegen oder dem punkt vor dem ersten slash?
     
  6. Nogger

    Nogger MacUser Mitglied

    Beiträge:
    367
    Zustimmungen:
    0
    MacUser seit:
    03.08.2004
    Dann solltest du in der Logdatei nach dem Fehler suchen.

    In der php.ini kannst du auch den include_path erweitern (vorher mit phpinfo() den alten Wert anzeigen lassen).
     
  7. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Doch, da gibts nen sehr einfachen Trick. :)
    Und zwar ganz ohne verbiegen der http.conf oder der php.ini

    man schreibt enweder in jeder Datei oder in eine Datei, die man immer wieder included:
    PHP:
    $docroot=$_SERVER['DOCUMENT_ROOT'];
    $host=$_SERVER['HTTP_HOST']
    Nun kann man die Variablen $docroot (für Pfadangaben auf Dateien) und $host (für Pfandangaben in Links) unabhängig von der jeweiligen Umgebung verwenden.
    Beispiel:
    PHP:
    include("$docroot/files/head.txt");
    print 
    "<a href=\"$host/subdir1/subdir2/site7.html\">Link</a>"
    Ich mach das grundsätzlich so (in Perl funktioniert es ähnlich)
    Kann ich mir - ehrlich gesagt - gar nicht mehr anders vorstellen.
     
    Zuletzt bearbeitet: 13.02.2005
  8. Nogger

    Nogger MacUser Mitglied

    Beiträge:
    367
    Zustimmungen:
    0
    MacUser seit:
    03.08.2004
    Da ist zweimal ein "include(" zuviel, das müssen wir abziehen, das macht dann in Schilling... ;-)

    Du könntest in dieser zentralen Datei mit ini_set() den include_path zu ändern, dann mußt du $docroot nicht in die include() Aufrufe einbauen.

    Wäre natürlich auch eine Möglichkeit für die Fragestellung hier.
     
  9. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Danke für den Hinweis. Ich sollte nicht nach Mitternacht posten :)
    (Hab's oben geändert um niemanden zu verwirren.)
     
  10. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.808
    Zustimmungen:
    3.633
    MacUser seit:
    23.11.2004
    warum machst du kein include("kunden/subfolder/file.inc.php");
    bzw lässt dir mal von php den pfad ausgeben damit du weißt wo du bist und machst das ganze dann relativ "../" müsste dich immer ein ebene höher bringen.
     
Die Seite wird geladen...

Diese Seite empfehlen