Von Alias Verzeichnis auf root zugreifen

Alles, was PHP betrifft, kann hier besprochen werden.

Von Alias Verzeichnis auf root zugreifen

Postby smoon » 28. August 2009 10:28

Hallo,

ich hab ein Problem und zwar hab ich in der Apache Config einen "externen" Ordner über ein Alias eingebunden jedoch kann ich von dort aus nicht auf das Root-Verzeichnis zugreifen. Wenn ich dort bspw. eine Datei aus dem Document Root einbinden will

Code: Select all
include('/ordner/datei.php');


kommt immer die Meldung, dass die Datei nicht gefunden werden konnte.

Woran liegt das?
smoon
 
Posts: 10
Joined: 28. August 2009 10:22

Re: Von Alias Verzeichnis auf root zugreifen

Postby Wiedmann » 28. August 2009 10:49

Das funktioniert so auch im normalen "htdocs" nicht, da include() mit Dateisystempfaden arbeitet und nicht mit URI-Pfaden (ausgehend vom DocumentRoot). Mit dem ersten "/" ist hier also immer das Hauptverzeichnis deiner Festplatte gemeint.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Von Alias Verzeichnis auf root zugreifen

Postby smoon » 28. August 2009 11:14

Nein include() arbeitet mit relativen und absoluten Pfaden. Erstelle ich im Root-Verzeichnis eine Datei mit einem include Befehl funktioniert dieser auch.
smoon
 
Posts: 10
Joined: 28. August 2009 10:22

Re: Von Alias Verzeichnis auf root zugreifen

Postby Wiedmann » 28. August 2009 11:16

Nein include() arbeitet mit relativen und absoluten Pfaden.

Yup. Das tut es es...

Erstelle ich im Root-Verzeichnis

... bei absoluten Pfaden aber eben ab dem root "/" des Dateisystems (Festplatte) und nicht ab dem DocumentRoot des Webservers.
(es sei denn, beides ist zufällig das Selbe)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Von Alias Verzeichnis auf root zugreifen

Postby smoon » 28. August 2009 11:19

Nein. Ich arbeite unter Windows, also ist "/" das htdocs-Verzeichnis.

Dennoch:

Code: Select all
include('/ordner/datei.php');


im htdocs-Verzeichnis funktioniert im Alias-Verzeichnis jedoch nicht.
smoon
 
Posts: 10
Joined: 28. August 2009 10:22

Re: Von Alias Verzeichnis auf root zugreifen

Postby Wiedmann » 28. August 2009 11:24

Ich arbeite unter Windows, also ist "/" das htdocs-Verzeichnis.

Das hat mit Windows nichts zu tun. Bei Dateisystemfunktionen wie include() ist "/" immer das Hauptverzeichnis (root Verzeihnis) des Dateisystems, bzw. bei Windows des aktuellen Laufwerkes.

Dennoch:
Code: Select all
include('/ordner/datei.php');

im htdocs-Verzeichnis funktioniert

Garantiert nicht. Sollte das exklusiv bei dir tun, melde bitte einen Bug bei bugs.php.net.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Von Alias Verzeichnis auf root zugreifen

Postby smoon » 28. August 2009 11:34

Dann muss es wohl ein Bug sein. Hat mich nämlich sehr gewundert, dass es im htdocs geht aber nicht im Alias-Verzeichnis. Also kann ich hier nur den absoluten Systempfad angeben?
smoon
 
Posts: 10
Joined: 28. August 2009 10:22

Re: Von Alias Verzeichnis auf root zugreifen

Postby Wiedmann » 28. August 2009 11:44

Also kann ich hier nur den absoluten Systempfad angeben?

Wenn beide Verzeichnisse auf dem selben Laufwerk sind, würde auch ein relativer gehen. Ein absoluter ist aber bestimmt einfacher (den kann man ja auch mit Hilfe einer passenden Servervariablen bilden. Siehe phpinfo()).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Von Alias Verzeichnis auf root zugreifen

Postby Nobbie » 28. August 2009 14:33

smoon wrote:Dann muss es wohl ein Bug sein. Hat mich nämlich sehr gewundert, dass es im htdocs geht aber nicht im Alias-Verzeichnis.


Ne, das glaube ich nicht. Was auch immer Du falsch machst (vielleicht kommen ja noch irgendwelche Laufwerksbuchstaben ins Spiel, falls Du unter Windows arbeitest), aber ganz sicher hat PHP da keinen Bug und konstruiert aus der absoluten Angabe '/ordner' den Pfadnamen DOCUMENT_ROOT/ordner (oder ALIAS/ordner), wobei DOCUMENT_ROOT durch den entsprechenden Wert zu ersetzen ist. Das passiert ganz sicher nicht!

PHP greift direkt auf das Dateisystem zu - und nicht indirekt via HTTP Request. Es sei denn, Du machst sowas: include('http://localhost/ordner')

Denkbar wäre allenfalls noch, dass Du Apache in einer chroot-Umgebung laufen läßt (das kann ich nicht erkennen), aber da müßten auch die ALIAS und DOCUMENT_ROOT Angaben entsprechend angepasst sein.
Nobbie
 
Posts: 9503
Joined: 09. March 2008 13:04

Re: Von Alias Verzeichnis auf root zugreifen

Postby smoon » 29. August 2009 10:24

aber ganz sicher hat PHP da keinen Bug und konstruiert aus der absoluten Angabe '/ordner' den Pfadnamen DOCUMENT_ROOT/ordner (oder ALIAS/ordner),


Anders ist es aber nicht zu erklären. Wenn "/" das Hauptverzeichnis des Laufwerks ist, dann hätte er die Datei nicht finden können, da der htdocs Ordner in "C:\Dev\xampp\htdocs\" liegt. Aber auf jeden Fall erstmal danke für die Aufklärung ;)
smoon
 
Posts: 10
Joined: 28. August 2009 10:22

Re: Von Alias Verzeichnis auf root zugreifen

Postby Nobbie » 29. August 2009 11:15

smoon wrote:Anders ist es aber nicht zu erklären.


Doch, es ist 100%ig anders zu erklären. Weil PHP nicht so funktioniert.

Aber so lange wir keine exakten Angaben haben (ich kenne weder den DocumentRoot, noch den Alias, noch die Ordnerstrukturen, noch die Position der Scripts), kann ich Dir dir richtige Erklärung nicht geben. Sicher ist nur, dass die andere "Erklärung" falsch ist, und zwar mit absoluter Sicherheit.
Nobbie
 
Posts: 9503
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 1 guest