Ich habe noch ein älteres Blog mit b2evolution am laufen. Besonders viel schreibe ich dort nicht, ich verwende es für meine Reiseberichte für die Familie und Freunde.
Es ist noch im Einsatz seit ich vor ein paar Jahren die Funktionalität zum Laufen gebracht hatte per eMail (vom Handy aus) bloggen zu können. Und wie sagt man so schön: Ändere nie ein laufendes System.
Irgend ein Softwareupdate führte jetzt dazu, dass b2evolution nicht mehr richtig geladen wurde. Im Apache Logfile fanden sich solche Ausgaben:
1 |
PHP Fatal error: require_once(): Failed pening required '/var/hosting/blog/inc/_core/_class5.0.funcs.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/hosting/blog/inc/_init_base.inc.php on line 113 |
Sieht so aus also ob dort eine versionsspezifische Datei geladen werden soll. In dem durchsuchten Verzeichnis gibt es aber nur „_class5.funcs.php„.
Der entsprechende Code in der Datei _init_base.inc.php macht das hier:
1 2 3 4 |
/** * Class loader. */ require_once $inc_path.'_core/_class'.floor(PHP_VERSION).'.funcs.php'; |
So wie es aussieht führt bei mir irgendetwas dazu dass unter bestimmten Umständen aus „5.3.3-7+squeeze14“ ein „5.0“ wird.
So ganz passend scheint mir der Weg auch nicht zu sein, ist wohl eher eine Notlösung für ältere Versionen.
Ich habe es mal durch eine geeignetere Variable ersetzt. Da ich meine Version kenne hätte ich auch gleich den Dateinamen hart codieren können. Keine Ahnung wann die Korrektur in offiziellen Versionen einfließt, falls ihr den gleichen Fehler habt könnt ihr die Datei wie hier beschrieben ändern:
1 2 3 4 5 6 7 |
/** * Class loader. */ if (!defined(PHP_MAJOR_VERSION)) { define('PHP_MAJOR_VERSION', substr(phpversion(),0,strpos(phpversion(), '.'))); } require_once $inc_path.'_core/_class'.PHP_MAJOR_VERSION.'.funcs.php'; |