Da ich selber zu Beginn so meine Probleme mit open_basedir hatte (VServer bei Evanzo mit PLESK) würde ich das Problem eher in 3 Fälle aufteilen.
Fall 1:
Back- und Frontend liegen im gleichen Serververzeichnis auf dem gleichen Vhost (/home/httpd/vhosts/domain.tld/httpdocs/
oder bei SSL in /home/httpd/vhosts/domain.tld/httpsdocs/)
Hier sollte es keinerlei Probleme mit Contenido geben, da bei den Providern dieser Pfad auch als open_basedir Pfad eingetragen ist.
Sollten hier Probleme mit der 4.6.x auftauchen, so wäre fast sicher ein Bug zu vermuten.
Fall 2:
Back- und Frontend liegen in verschiedenen Serververzeichnis auf dem gleichen Vhost (Frontend in /home/httpd/vhosts/domain.tld/
httpdocs/ und Backend mit SSL in /home/httpd/vhosts/domain.tld/
httpsdocs/)
Hier kommt es z.Bsp. beim Include zu Problemen wenn man versucht eine php-Datei aus dem Backend (
https://domain.tld/contenido/datei.php)in ein Modul einzubinden und die entsprechende Seite dann im Frontend aufzurufen (
http://domain.tld/cms/front_content.php).
Der Grund ist das für den http und den https Aufruf in der httpd.conf jeweils ein anderer 'Virtual Directory'-Eintrag angesprochen wird, in dem jeweils auch eine andere open_basedir-Einstellung gemacht wird, die nur Zugriffe innerhalb dieses Verzeichnisses gestattet (open_basedir = "/home/httpd/vhosts/domain.tld/httpdocs/:/tmp/").
Lösung: Zusätzlicher Eintrag in der httpd.conf im Virtual Directory für http bei open_basedir mit dem Pfad auf das httpsdocs-Verzeichnis (open_basedir = "
/home/httpd/vhosts/domain.tld/httpsdocs/:/home/httpd/vhosts/domain.tld/httpdocs/:/tmp/").
Fall 3:
Back- und Frontend liegen auf verschiedenen VHosts auf dem gleichen Server (z.B. Backend auf https://
domain1.tld/contenido und Frontend auf http://
domain2.tld/cms)
Hier gäbe es die gleichen Probleme wie in Fall 2.
Die Lösung hier wäre einmal eine Erweiterung des erlaubten Bereiches eine Möglichkeit (/home/httpd/vhosts/
domain.tld/httpdocs/:/tmp/ .... den roten Bereich entfernen), wobei aber der Nachteil ist, das dann für ein Script ein Übergriff über alle vhosts möglich werde.
Alternativ (und wohl besser) auch hier der Eintrag des 2. Verzeichnisses in die open_basedir Direktive ((open_basedir = "
/home/httpd/vhosts/domain1.tld/httpsdocs/:/home/httpd/vhosts/domain2.tld/httpdocs/:/tmp/").
Sicherlich gäbe es noch den Fall mit 2 Servern, doch davon möchte ich aus Sicherheitsgründen generell abraten und glaube das dieser Fall so gut wie nie notwendig ist.
Eine generelle Lösung gibt es meiner Meinung nach nicht, da es immer auf die Konfiguration des Providers ankommt. Ich hoffe aber zumindest einen Ansatz für spezielle Lösungen liefern zu können.
Ein Problem habe ich selbst noch, da bei der Vorschau im Backend (SSL) für Bilder, die im Upload-Verzeichnis des Frontend liegen, die Sicherheitsmeldung des Browsers kommt.
Gruß aus Franken
Ortwin