PHP Subdomain und Hauptdomain includen?

Schumiel

Lieutenant
Registriert
Jan. 2010
Beiträge
825
Hallo,

und zwar habe ich ein Linux-Server und da werden die Subdomains in ein extra Ordner "subdomains" erstellt. Wenn ich mit include von den Subdomains auf die Hauptdomain machen möchte, funktioniert das nicht. Da gibts ja wegen httpdocs extra Ordner.

Folgende Meldung wird angezeigt:
Warning: include() [function.include]: open_basedir restriction in effect. File(../../../httpdocs/xxx.php) is not within the allowed path(s): (/var/www/vhosts/xxx/subdomains/xxx/httpdocs:/tmp) in xxx on line 10

Warning: include(../../../httpdocs/xxx.php) [function.include]: failed to open stream: Operation not permitted in /var/www/vhosts/xxx/subdomains/xxx/httpdocs/xxx.php on line 10

Warning: include() [function.include]: open_basedir restriction in effect. File(../../../httpdocsxxx.php) is not within the allowed path(s): (/var/www/vhosts/xxx/subdomains/xxx/httpdocs:/tmp) in /var/www/vhosts/xxx/subdomains/xxx/httpdocs/xxx.php on line 10

Warning: include(../../../httpdocsxxx.php) [function.include]: failed to open stream: Operation not permitted in /var/www/vhosts/xxx/subdomains/xxx/httpdocs/xxx.php on line 10

Warning: include() [function.include]: Failed opening '../../../httpdocs/xxx.php' for inclusion (include_path='.:') in /var/www/vhosts/xxx/subdomains/xxx/httpdocs/xxx.php on line 10
 
Erst mal steht da schon eine sehr aussagekräftige Meldung: "open_basedir restriction in effect. File(../../../httpdocs/xxx.php) is not within the allowed path(s)".

Zweitens sollen wir Rätselraten wie die Verzeichnisstruktur bei dir genau aussieht? oO
 
Zweitens sollen wir Rätselraten wie die Verzeichnisstruktur bei dir genau aussieht? oO
Ist die nicht bei allen Linux-Servern gleich?

Subdomain:
/subdomains/test/httpdocs/test.php

Zugreifende Ordner (Hauptdomain):
/httpdocs/test.php
 
Sieht nach Plesk aus, als Webspace-Verwaltungssoftware, korrekt? Plesk hat sicherlich _nichts_ mit Linux zu tun, es ist kein Standardprogramm von Linux zur Verwaltung von Websites, es ist ein teures proprietäres Programm. Und nicht jeder hat Plesk und kennt sich damit aus ;)

Aber das, was du vorhast, kannste knicken. Atm weiß ich nicht mehr genau, wie Plesk aufgebaut ist, allerdings hatte ich damals meine Probleme überhaupt etwas an direkten Webservereinstellungen zu ändern, und oft schlug es fehl, weil Plesk automatisch die "richtigen" Einstellungen lud.

Du müsstest versuchen in den jeweiligen Webserver/PHP.ini Settings unter "open_basedir" zu ändern, damit du vom hauptordner in die Subdomainordner kommen kannst. Anders ists nicht zu bewerkstelligen - und eigentlich auch überhaupt nicht Sinn der Sache.

Und wenn du sogar sowieso nur nen stinknormalen Webspace besitzt (also keinen Root-Zugriff), dann kannste sowieso alle Bemühungen einstellen über PHP vom Hauptwebspace auf die Subdomainspaces zuzugreifen. Unmöglich.
 
Danke für deine Aufklärung, die sich für mich nun ernüchternd dar stellt.

Ich habe einen Root-Server. Inwiefern das jetzt gut ist, ob es überhaupt zum gewollten Ziel führt, weiß ich nicht.

Ich habe eine Alternativ-Idee, wo ich z.B. http://test.domain.de und diese auf http://www.domain.de/test umleite. Gibt es dafür eine zufriedenstellende Lösung?
Mit HTML-Meta und PHP-header ist dies für mich keine zufriedenstellende Lösung, da die Adresszeile die Subdomain bleiben soll und nicht der Zusatz (Ordner) in der Hauptdomain.
 
Naja, wennde nen Rootserver hast, haste auch Zugriff auf die entsprechenden Dateien, die für die open_basedir-Direktiven verantwortlich sind. Ich kann dir aber nicht sagen, wo du sie findest und was genau du dort ändern musst, am einfachsten wäre es wohl, wenn open_basedir komplett deaktiviert würde. Da du ja dein eigener Herr auf dem Rootserver bist, sollte des für dich ja kein Problem sein. In der PHP.ini findest du entsprechend die Einstellungen, ein Semikolon (;) vor open_basedir würde alle Restriktionen deaktivieren. Hoffe ich, hab damit keine Erfahrungen.

Ansonsten müsstest du in der VHost-Datei von Plesk (oder Apache, je nach dem) schauen. Dort hast du für jeden eingerichteten Webspace entsprechende Vhost-Einträge, die wiederum einen <Directory>-Abschnitt haben müssten, in dem ein Flag namens php_admin_value open_basedir /(ORDNERNAME) beinhaltet...

Da müssteste dich mal auf die Suche begeben, wo die Dateien liegen und was daran geändert werden muss. In jedem Fall _musst_ du vorher (!) Plesk beenden, dann die Daten editieren, dann inetd neustarten.


Ansonsten, so wie ich verstanden habe, willst du PHP-Dateien von einem Webspace in den anderen per PHP includen. Das wird schlichtweg unter keinen Umständen funktionieren, wenn open_basedir aktiv ist.

Alternativ, wenn du lediglich willst dass die Subdomain im Browserfenster erscheint, es dir völlig egal ist, wo das PHP-Script ausgeführt wird, dann brauchste:

- index.html + iFrame mit Ziel auf /index.php
- index.php + header("Location: zielurl.de/test");

Das müsste beim Client bewirken, dass _nur_ der iframe auf die neue Url geleitet wird, nicht jedoch die index.html. Ergo müsste die Subdomain im Browser bestehen bleiben. Probiers mal aus.
 
Zurück
Oben