PHP 5.3 und bbPress: Fehlermeldungen

In der Kombination von PHP 5.3 und bbPress in der aktuellen Version 1.0.2 kommt es immer wieder zu hässlichen Fehlermeldungen, insbesondere, wenn man eine lokale Installation unter XAMPP ausprobiert (im Zitat sind die Fehlermeldungen ein wenig gekürzt):

Deprecated: Assigning the return value of new by reference is deprecated in […] bb-settings.php on line 186

Deprecated: Assigning the return value of new by reference is deprecated in […] /bb-includes/backpress/functions.wp-object-cache.php on line 108

Deprecated: Assigning the return value of new by reference is deprecated in […] /bb-includes/backpress/pomo/mo.php on line 171

Deprecated: Assigning the return value of new by reference is deprecated in […] /bb-includes&/functions.bb-l10n.php on line 484

Deprecated: Assigning the return value of new by reference is deprecated in […] /bb-includes/backpress/class.wp-taxonomy.php on line 581

Deprecated: Assigning the return value of new by reference is deprecated in […] /bb-admin/includes/class.bb-install.php on line 1280

Warning: Cannot modify header information – headers already sent by (output started at […] /bb-settings.php:186) in […] /bb-admin/includes/class.bb-install.php on line 390

Warning: Cannot modify header information – headers already sent by (output started at […] /bb-settings.php:186) in […] /bb-includes/functions.bb-core.php on line 1101

Da solche Fehler bereits bei der Installation auftreten, ist die Situation für einen Neueinsteiger sehr entmutigend und bbPress erweckt nicht gerade den Eindruck, eine im täglichen Betrieb problemlos laufende Software zu sein. Der Fehler ist unter den Entwicklern schon lange bekannt und auch schon seit acht Monaten behoben, aber leider wird die Bugfix-Version schon seit einiger Zeit nicht veröffentlicht. Deshalb hier eine ganz schnelle und einfache Abhilfe, mit der sich bbPress installieren und betreiben lässt:

  1. Zusehen, dass man etwas Ruhe hat und sich auf die folgenden Schritte konzentrieren kann. Dies gilt vor allem für Menschen, denen PHP-Quelltexte wie „böhmische Dörfer“ vorkommen. Nicht von den unverständlichen Quelltexten einschüchtern lassen, es ist alles halb so wild!
  2. Die Datei bb-admin/includes/class.bb-install.php im Editor öffnen.
  3. Dort die Zeile suchen, die
    $bbdb = new BPDB_Multi
    enthält. Diesen Text in
    $bbdb =& new BPDB_Multi
    ändern, die so geänderte Datei speichern.
  4. Die Datei bb-admin/install.php im Editor öffnen.
  5. Dort die Zeile suchen, die den Text
    error_reporting
    enthält. Sie sollte so aussehen:
    error_reporting (E_ALL ^ E_NOTICE);
    diesen Text in
    error_reporting (E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING);
    ändern, die so geänderte Datei speichern.
  6. Die Datei bb-includes/functions.bb-l10n.php im Editor öffnen
  7. Dort die Zeile suchen, die den Text
    $empty = new Translations
    enthält. Diesen Text in
    $empty =& new Translations
    ändern, die so geänderte Datei speichern.
  8. Die Datei bb-load.php im Editor öffnen.
  9. Dort die Zeile sichen, die den Text
    error_reporting enthält.
    Diese Zeile sollte so aussehen:
    error_reporting (E_ALL ^ E_NOTICE);
    diesen Text in
    error_reporting (E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING);
    ändern, die so geänderte Datei speichern.

Nach dem Hochladen der geänderten Dateien auf dem Webserver oder dem Kopieren der geänderten Dateien in das Verzeichnis mit der bbPress-Installation sollte alles problemlos funktionieren. Eventuelle Fragen, warum sich die Veröffentlichung einer fehlerbereinigten Version seit vielen Monaten verzögert, bitte in höflicher englischer Sprache an die Entwickler oder am besten gleich an Matt Mullenweg senden.

Wer aus dem erwartungsgemäßen Schweigen von dieser Seite den gleichen Schluss zieht wie ich, nämlich, dass das Projekt bbPress in der jetzigen Form für die Macher von WordPress nicht weiter erwünscht ist und deshalb still und heimlich begraben werden soll, während andere Projekte mit großem Eifer und aufdringlichem Tamtam vorangetrieben werden, sollte sich noch einmal überlegen, ob bbPress angesichts einer derart trüben Zukunft wirklich die richtige Wahl ist. Ich hoffe ja, dass ich derartige Warnungen in naher Zukunft relativieren muss, aber ich hoffe das für meinen Geschmack schon viel zu lange.

Probleme mit XAMPP und bbPress

XAMPP ist eine sehr beliebte Distributon eines WAMP für Microsoft Windows. Die Installation entspricht dem unter Windows gewohnten Standard, und nach dem setup.exe stehen alle Komponenten des Systemes zur Verfügung. Das ist eine große Erleichterung für jeden, der eine Webanwendung lokal ausprobieren oder sich persönlich anpassen möchte, dabei seine vertraute Arbeitsumgebung am Computer haben möchte und sich dennoch nicht durch die manchmal etwas anspruchsvolle Installation der benötigten Einzelanwendungen arbeiten möchte. Und daher rührt auch die Beliebtheit. (Einen „richtigen“ Webserver würde ich damit allerdings nicht betreiben wollen.)

In der Kombination bbPress und XAMPP treten jedoch immer wieder einmal Fehler auf, die zurzeit niemand richtig zu verstehen scheint – zumindest entsteht im englischsprachigen Forum dieser Eindruck. Schon bei der Installation von bbPress unter einem aktuellen XAMPP gibt es diverse Warnungen, dass die Verwendung von Referenzen bei Funktionsaufrufen „deprecated“ (veraltet) sei, und wenn man noch vor dem ersten Installationsschritt, also sozusagen im Schritt Null, mit diversen derartigen Meldungen überschüttet wird, ist das alles andere als ermutigend. Zudem treten sie auch im Forumsbetrieb auf.

Diese Meldungen bleiben auch bestehen, wenn die Deprecated-Meldungen in der php.ini durch Maskieren mit einem & ~E_DEPRECATED abgeschaltet werden.

Letzteres ist ein Fehler, aber mit Sicherheit ein Fehler der PHP-Version, die mit XAMPP ausgeliefert wird, denn diese Meldungen sollten durch eine derartige Einstellung völlig unterdrückt werden. Eine solche Unterdrückung ist auch sinnvoll, da hier kein wirklicher Fehler auftritt, sondern ein Sprachmerkmal von PHP4 benutzt wird, das in PHP5 eben als veraltet gilt und in künftigen Versionen möglicherweise nicht weiter unterstützt wird. Zurzeit strebt bbPress noch die vollständige Kompatibilität mit PHP4 an, dies wird sich wohl erst ändern, wenn auch der letzte Hoster PHP5 anbietet.

(Es gibt gute Gründe, bei PHP4 zu bleiben, einer davon ist die hohe Robustheit von PHP4, die weniger administrativen Aufwand beim Betrieb eines Servers erforderlich macht. Dieses Maß an Robustheit zu erreichen, liegt noch auf dem Weg, den PHP5 zu beschreiten hat.)

Leider habe ich hier keine Möglichkeit, dieses Problem nachzuvollziehen, weil ich kein Windows zur Verfügung habe. (Und nein, auf mein Linux kommt mir kein XAMPP, ich bin darauf angewiesen, dass alles gut läuft und deinstalliere keine funktionierende Software!) Wenn jemand diesen Fehler analysieren könnte und das XAMPP-Team und vielleicht auch das englische bbPress-Forum mit näheren Informationen versorgen könnte, denn wäre das sicherlich für viele Menschen eine große Hilfe.