Ist 4.8.18 kompatibel mit PHP 4.2.17?

Gesperrt
peko
Beiträge: 32
Registriert: Mo 22. Dez 2008, 13:26
Wohnort: Wien
Kontaktdaten:

Ist 4.8.18 kompatibel mit PHP 4.2.17?

Beitrag von peko » Mi 19. Dez 2012, 17:02

Hallo!

Habe auf einem Kundenserver Contenido 4.8.18 installiert. Die Installation mit dem Installer hat wie gewohnt funktioniert. Habe dann für den Systemtest einmal ein ganz simples Layout erstellt dass mir nur Text ausgibt (keine Module und sonstiges).Habe dann Template, Kategorie und Artikel angelegt, alles freigeschalten und erwartet dass ich im Browser den Domänennamen lesen kann. Stattdessen kommt:

Code: Alles auswählen

Fatal error: Call to undefined function cinclude() in /usr/local/pem/vhosts/112295/webspace/httpdocs/front_content.php on line 83 
Über den Link http://d12321.ispservices.at/front_content.php?idcat=1 lkann man sich das anschauen.

Schaut man in front_content.php auf Zeile 83, wird dort die Funktion cInclude() gerufen. Die Fehlermeldung findet cinclude() nicht. Sehen alle den Unterschied? Klar findet PHP diese Funktion nicht, aber wie gibt es das? Ich stehe an, ich weiß nicht einmal, wie ich dem Fehler auf die Spur kommen kann. Das Contenido ErrorLog ist leer und interessanterweise wird die Seite im Backend sehrwohl richtig ausgegeben.

Ein falscher Pfad kann es auch nicht wirklich sein, da wäre PHP gar nicht bis zu dieser Zeile gekommen - vorher wird ja zb startup.php includiert und die scheint durchzulaufen. Hier wird auch cInclude() gerufen und offensichtlich problemlos ausgeführt. Erst auf Zeile 83 in front-content.php bricht PHP mit der Fehlermeldung ab.

Kann das irgendwie mit der Konfiguration des Webservers oder PHP zusammenhängen? Nicht, dass an dieser etwas ändern könnte, aber trotzdem...

Beim Installieren hatte ich die Meldung dass die "Basehref-Einstellungen möglicherweise unzureichend sind". Das hatte ich schon öfter, mir ist aber dann nie ein Problem dabei untergekommen und mir ist aufgefallen, dass einige PHP Module deaktiviert sind:

Code: Alles auswählen

show_source,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,system,apache_note,apache_setenv,closelog,debugger_off,debugger_on,define_syslog_variables,openlog,syslog,popen,pclose,ini_restore,symlink,ini_alter,disk_total_space,diskfreespace,dl,backtick_operator,set_time_limit
Hier gibt es eine phpinfo():
http://d12321.ispservices.at/info.php
Vielleicht wird da jemand schlau draus.

System:
Contenido 4.8.18
PHP 5.2.17 als CGI Modul
MySQL-Client-Version: 5.0.77
Apache RedHat Linux (wahrscheinlich)

Hat jemand sieses Problem schon mal gehabt und hat es gelöst oder weiß sonst Rat?
Vielleicht erübrigt sich am 21ten ja sowieso alles, aber ansonsten sollte die Erstaustattung der Website vor Weihnachten fertig sein und jetzt habe ich schon ein halbe Woche mit diesem Fehler vertan.

liebe Grüße aus Wien
peko

xmurrix
Beiträge: 2748
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Ist 4.8.18 kompatibel mit PHP 4.2.17?

Beitrag von xmurrix » Mi 19. Dez 2012, 18:39

Hallo peko,

am besten sollted ihr das aussitzen, ist eh nicht mehr lang bis zum 21. :-)

Das Frontend scheint nicht wie üblich unter cms/ zu sein, sondern liegt wohl direkt im Webroot. Habt ihr im nachhinein Änderungen an der Konfiguration des Webservers gemacht oder hat die Installation eine andere Konfiguration als eine übliche CONTENIDO Installation?

Wen die Funktion cInculde() nicht gefunden wird, bedeutet das, dass die Intialisierungs von CONTENIDO nicht korrekt funktioniert hat. Schau dir mal den Code in der Datei contenido/includes/startup.php an.

Die Datei startup.php wird zielich am Anfang der front_content.php aufgerufen.

Code: Alles auswählen

include_once ($contenido_path . 'includes/startup.php');
Die Variable $contenido_path wird in der Datei "config.php", die im Mandantenordner liegt, gesetzt. Normalerweise ist der Pfad zum contenido-Verzeichnis relativ vom Mandantenverzeichnis aus, und sieht so aus:

Code: Alles auswählen

$contenido_path = "../contenido/";
Anscheinend ist bei der Installation das contenido-Verzeichnis nicht dort, wo es üblicherweise sein sollte, also eine Ebene oberhalb des Mandantenverzeichnisses. Ihr könnt den Wert in $contenido_path anpassen, dan sollte es kein Problem sein. Prüft auch die Pfadangaben in der Datei "contenido/includes/config.php".

Gruß
xmurrix
CONTENIDO downloads: CONTENIDO 4.10.1
CONTENIDO links: Documentation, API documentation
CONTENIDO @ Github: CONTENIDO 4.10

peko
Beiträge: 32
Registriert: Mo 22. Dez 2008, 13:26
Wohnort: Wien
Kontaktdaten:

Re: Ist 4.8.18 kompatibel mit PHP 4.2.17?

Beitrag von peko » Mi 19. Dez 2012, 19:25

Hallo, xmurrix!

Danke für die schnelle Antwort. Es ist tatsächlich so, dass Contenido in einem unterverzeichnis des Mandant sitzt, einfach <domainname> zur Webseite (frontend) führt und <domainname>/admin zu contenido backend. Demzufolge liegt contenido selbst relativ zum root in admin/contenido. Sonst ist aber alles Standard und ich habe das schon etliche Male so gemacht.

Und die Ursache für den Fehler ist genau die, die du beschrieben hast. Ich habe nach der contenido-Installation das cms/-Verzeichnis in die root-Ebene kopiert und dabei vergessen, dass ich diesen Parameter ändern muss. Blöd.

Mich hat die ganze Zeit aber irritiert, dass in der Fehlermeldung cinclude() nicht gefunden wird (mit kleinem i) die Funktion im Quellcode aber cInclude() geschrieben wird. Für PHP ist das normalerweise ein Unterschied. Jetzt habe ich die ganze Zeit in den Serversettings - soweit zugänglich - und in der PHP-Konfiguration nach irgend einem Hinweis gesucht und dabei ans Nahelegende nicht gedacht.

Jedenfalls danke, es funktioniert jetzt und wir schaffen es jetzt vielleicht bis Weihnachten...

In dem Sinn schöne Feiertage - so es denn welche gibt :wink:
peko

Gesperrt