Seite 1 von 1

CMS läuft nach umstellung auf PHP5 nicht mehr

Verfasst: Do 20. Sep 2007, 12:49
von wuff
Hallo
Unser Provider hat auf php5 umgestellt. Nun ist nur noch eine weisse Seite zu sehen.

Im Backend war folgende Meldung zu Lesen:

Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/share/php5/classes/class.template.php) is not within the allowed path(s): (/srv/www/vhosts/musterweb.de/httpdocs:/tmp) in /srv/www/vhosts/musterweb.de/httpdocs/contenido/frameset.php on line 17

Warning: main(classes/class.template.php) [function.main]: failed to open stream: Operation not permitted in /srv/www/vhosts/musterweb.de/httpdocs/contenido/frameset.php on line 17

Warning: main() [function.include]: Failed opening 'classes/class.template.php' for inclusion (include_path='/usr/share/php5') in /srv/www/vhosts/musterweb.de/httpdocs/contenido/frameset.php on line 17

Fatal error: Class 'Template' not found in /srv/www/vhosts/musterweb.de/httpdocs/contenido/frameset.php on line 35


Dann hat der Provider änderungen an unseren Dateien vorgenommen sodas die Startseite wieder zu sehen ist. Auf eine andere Seite kann ich aber nicht Navigieren.

Zitat Provider:
Ich habe folgende Änderungen vorgenommen.

config.php:
$contenido_path = "contenido/"; -> $contenido_path = "./contenido/";

front_content.php:
include_once ("config.php"); -> include_once ("./config.php");

Offenbar gibt es aber noch mehr includes, die man modifizieren muss
das muss ihr Programmierer dann noch machen.
Zitat Ende

Navigiere ich auf die nächste Seite bekomme ich jetz:

Warning: contenido_include() [function.contenido-include]: open_basedir restriction in effect. File(/usr/share/php5/HTML/Common.php) is not within the allowed path(s): (/srv/www/vhosts/musterweb.de/httpdocs:/tmp) in /srv/www/vhosts/musterweb.de/httpdocs/contenido/includes/api/functions.api.general.php on line 165

Warning: contenido_include(HTML/Common.php) [function.contenido-include]: failed to open stream: Operation not permitted in /srv/www/vhosts/musterweb.de/httpdocs/contenido/includes/api/functions.api.general.php on line 165

Warning: contenido_include() [function.include]: Failed opening 'HTML/Common.php' for inclusion (include_path='/usr/share/php5:/srv/www/vhosts/musterweb.de/httpdocs/pear/') in /srv/www/vhosts/musterweb.de/httpdocs/contenido/includes/api/functions.api.general.php on line 165

Fatal error: Class 'HTML_Common' not found in /srv/www/vhosts/musterweb.de/httpdocs/contenido/classes/class.htmlelements.php on line 32


Muss ich denn jetzt wirklich irgendwelche dateien Ändern?
und wenn ja welche?

Vielen Dank schon mal

Verfasst: Do 20. Sep 2007, 14:24
von GaMbIt_
Uahhhh... das hört sich nach einem Pfade Problem an...

Im Backend läuft noch alles ???
Stimmen die Pfade ??

Verfasst: Do 20. Sep 2007, 14:58
von calvini
Wenn dein Provider die open_basedir-Direktive einsetzt, sollte er das meines Erachtens so machen, dass danach noch alle Skripte funktionieren. Ansonsten würde ich die Fehlermeldungen so interpretieren, dass da irgendwas im Pfad "/usr/share/php5/HTML/" steht, was eigentlich im Pfad "/srv/www/vhosts/musterweb.de/httpdocs:/tmp" stehen sollte. Wobei mir zweiterer Pfad sehr komisch erscheint, vielleicht hat der Provider das was verbaselt?

Verfasst: Do 20. Sep 2007, 15:06
von calvini
Letzteres ziehe ich zurück, ist wohl die Kombination mehrerer Pfade. Besteht die Möglichkeit, eine Ausgabe von phpinfo() zu bekommen? Vielleicht ist irgendein Include-Pfad verbogen?

Verfasst: Do 20. Sep 2007, 16:32
von wuff
GaMbIt_ hat geschrieben:Uahhhh... das hört sich nach einem Pfade Problem an...

Im Backend läuft noch alles ???
Stimmen die Pfade ??
Hallo
Backend geht auch nicht (siehe oben Einführungs Beitrag )
An den Pfaden haben wir nichts verändert.
Ich muss noch dazu Sagen das auch das Setup nicht geht wenn man versucht ein neues Contenido zu Installieren. (Setup start > weise Seite)

Verfasst: Do 20. Sep 2007, 17:37
von GaMbIt_
Dann ist da aber mehr faul...

Hast du mal eine phpinfo() abgefragt???
Stimmen die Pfade von der Datei mit den Pfaden die in den Optionen angezeigt werden überein ???
Kommst Du noch an die Datenbank ran ???

Verfasst: Fr 21. Sep 2007, 07:05
von wuff
Hier mal ein Auszug aus der PHP info

Configure Command

'../configure' '--prefix=/usr' '--datadir=/usr/share/php5' '--mandir=/usr/share/man' '--bindir=/usr/bin'
'--libdir=/usr/lib' '--includedir=/usr/include' '--with-_lib=lib' '--sysconfdir=/etc/php5/apache2'
'--with-config-file-path=/etc/php5/apache2' '--with-config-file-scan-dir=/etc/php5/conf.d'
'--with-exec-dir=/usr/lib/php5/bin' '--enable-magic-quotes' '--enable-libxml' '--enable-session'
'--with-pcre-regex' '--enable-xml' '--enable-simplexml' '--enable-spl' '--enable-safe-mode'
'--enable-sigchild' '--disable-debug' '--enable-memory-limit' '--enable-inline-optimization'
'--with-apxs2=/usr/sbin/apxs2' '--disable-all'


Directive________Local Value________________________Master Value

extension_dir____/usr/lib/php5/extensions______________/usr/lib/php5/extensions
include_path_____/usr/share/php5____________________/usr/share/php5
open_basedir____/srv/www/vhosts/musterweb.de/httpdocs:/tmp

Verfasst: Fr 21. Sep 2007, 08:10
von kummer
die pfade stimmen ganz sicher nicht. das class.template.php ist definitiv nicht im usr/share usw. der fehler hat also überhaupt nichts mit den open_basedir_restriction zu tun.

was hast du eigentlich für eine version von contenido in gebrauch? meines wissens läuft es mit php5 erst ab der version 4.6.15...

Verfasst: Fr 21. Sep 2007, 10:19
von calvini
Ich würde auch behaupten, dass der Include-Pfad falsch gesetzt ist. Es wäre eigentlich Aufgabe des Providers, dies korrekt zu setzen. Du solltest das aber auch mit

Code: Alles auswählen

ini_set('include_path','korrekte Pfade');
selbst setzen können (@kummer: am besten dann wohl in startup.php?).
Quellen: ini_set(), php.ini Einstellungen

Verfasst: Fr 21. Sep 2007, 11:02
von kummer
contenido setzt keine bestimmten einstellungen hinsichtlich der include-verzeichnisse voraus. die werden entweder relativ zur ausgeführten datei oder absolut bezeichnet.

ich schätze mal: entweder gibt die entsprechende datei nicht oder eine variable, die den pfad zum verzeichnis enthält, in dem die datei liegt, ist leer.

Verfasst: Fr 21. Sep 2007, 11:07
von delinquent
Immerhin seh ich nicht das aktuelle Verzeichnis im include_path. Der steht ja auf "/usr/share/php5" und nicht auf sowas, wie ".:/usr/share/php5". Also wird php gar nicht erst im aktuellen Verzeichnis nach includes suchen.

@kummer: "included" Contenido alle Dateien mit "./"?

Ansonsten würde ich einfach mal sowas, wie

Code: Alles auswählen

ini_set('include_path', '.:' . ini_get('include_path'));
versuchen (Fehler vorbehalten :-) )

Verfasst: Do 27. Sep 2007, 09:27
von wuff
Vielen dank an alle für eure Infos.
delinquent hat geschrieben:
Ansonsten würde ich einfach mal sowas, wie

Code: Alles auswählen

ini_set('include_path', '.:' . ini_get('include_path'));
versuchen (Fehler vorbehalten :-) )


Mit diesem Vorschlag hat Contenido wieder Funktioniert.

Mittlerweile hat mein Provider aber den Server wohl neu aufgesetzt und von PHP 5.0.x auf PHP 5.2.x geupdatet.
Jetzt Arbeitet Contenido auch wieder ohne Modifikation Problemlos.