Sticky FAQ - Fehlermeldungen und Antworten

    FAQ - Fehlermeldungen und Antworten

    Permission denied

    Allgemeine Erklärung der Fehlermeldung selbst:
    Fatal error: PHP warning in file /wcf/lib/system/io/File.class.php (35): fopen(/wcf/cache/cache.eventListener-48.php) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Permission denied

    Die Datei /wcf/lib/system/io/File.class.php versucht auf die Datei /wcf/cache/cache.eventListener-48.php zu zugreifen. Dies schlägt aber mit der Meldung "Permission denied" (Zugriff verweigert) fehl.

    Diese Fehlermeldung ist immer gleich aufgebaut:
    • Erst kommt die Datei inkl. Zeilenangabe in der der Aufruf statt findet.
    • Als nächstes wird der Pfad inkl. Dateinamen angegeben auf die die Datei zugreifen möchte. fopen steht in dem Fall für Öffnen (die Datei soll also gelesen werden).
    • Zu guter Letzt kommt die Meldung was genau nicht stimmt. In diesem Fall "Permission denied" (Zugriff verweigert).

    Wenn ihr so eine Meldung bekommt, braucht ihr nur nach dem genannten Schema schauen was bemängelt wird ("Permission denied") und bei welcher Datei (In dem Fall: cache.eventListener-48.php) dieser Mangel auftritt.


    Lösung:
    Loggt euch mit eurem FTP Programm (Das ihr auch zum Hochladen der Installationsdateien benutzt habt) auf eurem Webspace ein. Wechselt in das Verzeichnis in dem die bemängelte Datei liegt. Markiert die Datei (anklicken) und macht dann einen Rechtsklick auf die Datei. Je nach FTP Programm kann man den chmod (Datei/Ordner Berechtigung) meistens unter Eigenschaften/Attribute setzen. Gebt dort entweder 777 ein, oder setzt alle Haken. Solltet ihr die Einstellung dort nicht finden, dann hilft google.de in dem Fall weiter. Einfach nach filezilla chmod setzen bzw. eurem FTP Programm suchen lassen.




    Generell brauchen alle Dateien und Ordner von WBB und WCF chmod 777. Einzige Ausnahme stellt die Datei config.inc.php im wcf Verzeichnis dar, diese sollte auf 644 stehenbleiben, da in ihr die Zugangsdaten zur Datenbank stehen. Bei Webservern, bei denen PHP als fastCGI läuft, kann der chmod 777 nicht gesetzt werden. Dort reicht es in der Regel wenn man stattdessen chmod 755 nimmt. Wenn ihr euch nicht sicher seid, dann versucht erstmal chmod 777, wenn es zu einer Fehlermeldung kommt dann nehmt chmod 755.
    Fatal error: PHP notice in file BoardList.class.php

    Fatal error: PHP notice in file /lib/data/board/BoardList.class.php (200): Undefined index: 1

    Ihr habt eure Foren etwas aufgeräumt und dabei einige gelöscht. Seit dem kommt die obige Fehlermeldung wenn ihr die Startseite eures Forums aufruft. Der Grund hierfür ist, dass die Tabelle wbb1_1_board_structure in der Datenbank noch Einträge zu Foren enthält die ihr bereits gelöscht habt.


    Lösung:
    Loggt euch in phpMyAdmin ein. phpMyAdmin ist ein Datenbank-Verwaltungsprogramm das in der Regel jeder Webhoster in seinem Kundeninterface (Plesk, Confixx, KAS, cPanel etc.) zur Verfügung stellt. Macht in phpMyAdmin als erstes ein komplettes Backup eurer Datenbank. Dafür einfach auf den Reiter exportieren klicken. Setzt dort den Haken bei Füge DROP TABLE / VIEW / PROCEDURE / FUNCTION hinzu und unten bei Senden, den Rest könnt ihr so lassen. Danach einfach auf OK klicken.

    Nach erfolgreichem Backup der Datenbank schaut auf der Übersichtsseite welchen Präfix eure Tabelle wbb1_1_board_structure hat und paßt ihn bei der Abfrage weiter unten bitte entsprechend an (Standard wenn bei der Installation keine andere Installationsnummer gewählt wurde ist: wbb1_1_, bei der Installationsnummer 2 wäre es: wbb2_1_).



    Klickt oben auf den Reiter SQL und gebt dort im Feld SQL-Befehl(e) in Datenbank xyz ausführen: folgenden SQL Befehl ein und klickt dann unten auf OK (Wenn ihr eine andere Installationsnummer als die 1 gewählt habt, dann müsst ihr die Abfrage (wbb1_1 (2x)) entsprechend vorher anpassen):

    SQL-Query

    1. DELETE bs FROM wbb1_1_board_structure bs LEFT JOIN wbb1_1_board b ON bs.boardID = b.boardID WHERE b.boardID IS NULL;



    Danach müsst ihr in WBB 3.1 ggf. noch unter Administration -> System -> Protokoll -> Cache den Cache leeren bzw. bei WBB 3.0 per FTP Programm die Ordner /cache und /wcf/cache leeren.
    Fatal error: Unable to find class file - was bedeutet das?

    Fatal error: unable to find class file 'action/UpdateAction.class.php'


    Diese Fehlermeldung tritt oft in Verbindung mit Plugins auf, wenn man das Forum neuinstalliert aber einfach ein Backup der alten Datenbank eingespielt hat, statt es per WBB 3 Importer zu importieren. In dem Fall sind in der Datenbank noch Reste von Plugins vorhanden die im Forum selbst fehlen.


    Lösung:
    Installiert das Forum inkl. WBB 3 Importer neu. Spielt das alte Datenbank Backup in eine neue Datenbank ein (per phpMyAdmin * oder MySQLDumper *) und holt die Daten dann per Importer in das neue Forum. Wenn ihr nur eine Datenbank habt, dann könnt ihr bei der Neuinstallation des Forums auch einfach eine andere Installationsnummer wählen. Dann kann beides ohne Probleme in einer Datenbank liegen.

    * phpMyAdmin ist ein Datenbank Verwaltungsprogramm das in der Regel jeder Webhoster in seinem Kundeninterface ([i]Plesk, Confixx, KAS, cPanel etc.) zur Verfügung stellt. phpMyAdmin hat auf Grund der Serverkonfiguration in der Regel Probleme mit Backups die größer als 2MB sind in diesem Fall ist der MySQLDumper zu empfehlen, da er auch mit größeren Dateien klar kommt.[/i]


    Bei mir tritt das Problem nach einem Serverumzug auf:
    In dem Fall wurden wahrscheinlich nicht alle Dateien von eurem Backup auf den neuen Server transferiert. Schaut anhand der Pfadangabe in der Fehlermeldung in eurem Backup nach und ladet die Datei per FTP (Filezilla, ws_ftp etc.) auf den neuen Server. Sollte euch die Datei bereits im Backup fehlen, dann müßt ihr entweder die WCFsetup.tar.gz entpacken (z.B. mit Winzip, Winrar) und sie dort rausholen, oder, wenn es sich um ein Plugin handelt, entsprechend das Archiv des Plugins.
    Wieso kommen Gäste/User in ein internes Forum?

    Lösung
    Bitte bei den Forenrechten auf die Benutzergruppe "Jeder" achten. Denn die Benutzergruppe "Jeder" ist wie der Name schon sagt Jeder, egal ob Gast, Bot, Administrator, Registrierter Benutzer oder jede weitere Benutzergruppe. Um ein Internes Forum zu eröffnen muss nur der Benutzergruppe Jeder alles verweigert und den entsprechenden Benutzer/Benutzergruppen das entsprechende Recht erteilt werden.

    Bitte folgendes Thema aufmerksam lesen: WBB3 Berechtigungen verstehen
    Nach einem Import wird auf der Startseite kein "Letztes Thema" angezeigt, sowie sind weitere Probleme vorhanden.

    Lösung:
    Nach einem erfolgreichen Import müssen sämtliche Anzeigen aktualisiert werden. Dies könnt ihr unter Administration -> System -> Wartung -> Anzeigen aktualisieren machen. Wichtig dabei ist aber das wirklich alles (Benutzer, Beiträge etc.) in einem Schwung importiert wurde, sonst fehlen die entsprechenden Verknüpfungen und das aktualisieren der Anzeigen bringt keine Veränderung.
    Ich bekomme folgende Meldung "Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in .../wcf/lib/system/WCF.class.php on line 37", was bedeutet das?

    Lösung:
    Diese Meldung bedeutet, dass dein Forum sich auf einem Server befindet, auf dem kein PHP 5 aktiv ist. WBB3 läuft nur mit PHP 5. Hier kann man mehr über die Anforderungen nachlesen. Wende dich an deinen Webhoster und frage ihn wie du PHP 5 auf deinem Webspace aktivieren kannst.

    Strato: So einfach bestimmen und wechseln Sie die PHP-Version
    1und1: Wie kann ich .php Dateien als PHP5 parsen lassen?
    all-ink: Mit welcher PHP- und MySQL-Version arbeitet ALL-INKL.COM?
    "Fatal error: Allowed memory size of xxx bytes exhausted", was bedeutet die Meldung?

    Lösung:
    Diese Meldung bedeutet, dass das Memory Limit im PHP zu niedrig eingestellt ist. Es sollten mindestens 32 MB sein.
    Falls man einen normalen Webspace Tarif besitzt, kann in der Regel nur der Hoster die Einstellungen vornehmen. Wenn es ein eigener vServer/Server ist, muss dies entsprechend in der php.ini geändert werden. Neueinlesen der Konfiguration durch den Webserver danach nicht vergessen. Beim Apache2 z.B. mit /etc/init.d/apache2 graceful, oder einfach neustarten.
    "Wer ist online"-Liste - Gäste können ohne Rechte Themen lesen

    In der "Wer ist online"-Liste sehe ich immer wieder Gäste oder Suchmaschinen Bots die auf Bereiche/Themen zugreifen zu denen sie keine Rechte haben.

    Lösung:
    Die "Wer ist online"-Liste fragt keine Rechte ab, sondern zeigt nur an welcher Link grade aufgerufen wird. Ob dabei eine Fehlermeldung "Zugriff verweigert" kommt, oder derjenige tatsächlich das Recht, hat den Bereich zu sehen ist dabei irrelevant.

    Wenn ihr auf Nummer sicher gehen wollt, dann meldet euch kurz ab und ruft den Link selbst auf. Dann seht ihr ob die Gruppenrechte falsch gesetzt sind, oder, so wie es sein soll, die "Zugriff verweigert"-Meldung kommt.
    Andrea Berg
    Customer Support WoltLab® GmbH
    Änderungen bei den Gruppenrechten oder Stil bearbeiten werden nicht gespeichert

    Eine mögliche Ursache hierfür könnte die PHP Erweiterung Suhosin sein. Wenn diese zu restriktiv eingestellt ist, dann werden nicht genügend Variablen an den Server übergeben. Das WBB braucht aber grade bei den Gruppenrechten und im Stileditor aufgrund der vielen Einstellmöglichkeiten eine Menge von Variablen.

    Lösung:
    Daher sollten hier die Suhosin Variablen suhosin.request.max_vars und suhosin.post.max_vars auf min. 2000 erhöht werden.

    Bei normalem Webspace kann das im Normalfall nur der Hoster.

    Solltet ihr einen Server mit Root Zugriff besitzen, dann könnt ihr das in der php.ini resprektive suhosin.ini selbst erledigen. Wo diese genau liegen erfahrt ihr über die phpinfo.php. Die phpinfo.php aus dem Anhang einfach per FTP ins Verzeichnis von euerem Forum laden und per Browser aufrufen. Unter Loaded Configuration File seht ihr den Pfad zur php.ini, sollten weitere inis geladen werden, dann seht ihr diese unter additional .ini files parsed, dort steht dann ggf. die suhosin.ini.
    Nach dem Ändern der ini nicht vergessen den Webserver neu zustarten. Beim Apache2 unter Linux könnt ihr das z.B. mit /etc/init.d/apache2 graceful machen (Bei Debian und Co. per apache2ctl restart).

    Ab PHP Version 5.3.9 kann auch die Funktion max_input_vars dafür verantwortlich sein. Standardmäßig sind hier nur 1000 Variablen erlaubt. Dieser Wert sollte also ebenfalls geprüft und bei Bedarf erhöht werden. Auch hier muss danach der Webserver neugestartet werden um die Änderung zu übernehmen.
    Files
    • phpinfo.php

      (19 Byte, downloaded 792 times, last: )
    Andrea Berg
    Customer Support WoltLab® GmbH
    Weiße Seite beim Update oder die index.php wird zum Download angeboten

    Eine weiße Seite deutet auf ein zu niedriges Memory Limit im PHP hin, dadurch wird das Script abgebrochen und liefert kein Ergebnis aus. Wenn die index.php zum Download angeoten wird, deutet dies ebenfalls auf ein zu niedriges Memory Limit oder eine temporäre Überlastung des Servers hin. Bei letzterem einfach zu einem späteren Zeitpunkt nochmal versuchen.

    Lösung zu niedriges Memory Limit:
    Das Memory Limit im PHP sollte mindestens 32 MB betragen.
    Falls man einen normalen Webspace Tarif besitzt, kann in der Regel nur der Hoster die Einstellungen vornehmen. Wenn es ein eigener vServer/Server ist, muss dies entsprechend in der php.ini geändert werden. Neueinlesen der Konfiguration durch den Webserver danach nicht vergessen. Beim Apache2 z.B. mit /etc/init.d/apache2 graceful, oder einfach neu starten.

    Wenn man "nur" ein Update des WBB/WCF machen möchte, reicht es oftmals auch schon aus, einfach die Community Server (community.woltlab.com/packages/horizon/ und community.woltlab.com/packages/tempest/) zu deaktivieren.

    Wenn der Hoster das Limit nicht erhöhen möchte und das Deaktivieren der Server nichts bringt, dann bietet Hawkes hier noch eine weitere Alternative an. Da diese allerdings einen Eingriff in die Dateien vom WBB bedeutet ist sie nicht unbedingt zu empfehlen:
    Autoupdate ohne Memory Limit Erhöhung?
    Andrea Berg
    Customer Support WoltLab® GmbH
    Forbidden - You don't have permission to access …

    Forbidden
    You don't have permission to access ../wcf/acp/index.php
    on this server

    Diese Meldung deutet darauf hin, dass auf dem Webserver die Apache Erweiterung mod_security installiert und zu restriktiv eingestellt ist. mod_security ist ein Apache Modul (für Apache 1 und 2), das Einbruchserkennung und -prävention für Web Anwendungen bereitstellt. Web Anwendungen sollen von bekannten und unbekannten Attacken, wie zum Beispiel SQL-Injection Attacks, Cross-Site Scriptings, Path Traversal Attacks etc. geschützt werden.

    Lösung:
    Bittet euren Hoster, mod_security entsprechend zu konfigurieren oder gar zu deaktivieren. Laut einem Supportmitarbeiter von All-inkl hilft es auch, wenn man im Hauptverzeichnis der Domain eine .htaccess Datei erstellt. Dafür einfach einen Texteditor deiner Wahl (z.B. Notepad, vi) öffnen und den nachfolgenden Code reinkopieren:

    Source Code

    1. php_value max_execution_time 120

    Die nun erstellte Datei als .htaccess speichern (die Datei hat keinen Namen und nur die Dateiendung!) einfach per FTP (Filezilla, WS_FTP etc.) auf euren Webspace laden.
    Andrea Berg
    Customer Support WoltLab® GmbH
    Mit Opera 10.5x können keine Beiträge erstellt werden bzw. es fehlen sämtliche BBCode Buttons im Editor

    Opera hat mit dieser Version erneut seine Javascript-Engine völlig umgebaut. Bislang setzten sie weitgehend auf Internet Explorer-artige Funktionen, diese wurden nun komplett entfernt …

    Um Opera ab Version 10.5x zu unterstützen, müsste der Editor so gravierend umgebaut werden, dass es einer Neuprogrammierung gleichkäme. Leider verändert Opera inzwischen fast mit jeder neuen Version seine Javascript-Engine, was dazu führt, dass wir ständig den Editor umbauen müssten. In einer Zwischenversion bauen wir keine neuen großen Features ein, daher ist der nächstmögliche Termin für eine vollständige Unterstützung von Opera 10.5x also WBB 3.2.x

    Sollte es dennoch mal Zeit dafür geben, kann es durchaus sein, dass wir die Unterstützung schon früher anbieten können, einen Fix damit man wieder Beiträge schreiben kann, wird es sicher bald geben.

    Lösung:
    Mit Burning Board 3.1.2 (WYSIWYG Editor 1.1.2 pl 1) gibt es einen Workaround, damit mit dem Opera 10.5x wieder Beiträge geschrieben werden können. Für die BBCode Buttons müsste wie oben erklärt der Editor gravierend umgebaut werden.
    Andrea Berg
    Customer Support WoltLab® GmbH
    BBCodes/Smileys/Links etc werden im Beitrag nicht umgewandelt.

    Wenn ihr das Problem habt das bei einen Beitrag die BBCodes/Smileys/Links etc. nicht umgewandelt werden, schaut bitte unter dem Editor im "Einstellungen"-Tab nach, ob die entsprechenden Optionen aktiviert sind.

    Beachtet hier bitte, dass die Einstellungen nur global aktiv werden, wenn ihr diese beim Erstellen eines neuen Beitrags setzt. Setzt ihr die Einstellungen beim Bearbeiten eines vorhandenen Beitrags, ändert ihr diese nur bei diesem einen Beitrag.

    Daher solltet ihr entsprechend einen neuen Beitrag verfassen, eure Einstellungen vornehmen und dann diesen absenden.

    Table "XY" is marked as crashed and should be repaired

    Wenn Ihr in eurem Forum eine Fatal Error Meldung bekommt, lest euch bitte genau durch was bei "sql error" steht.
    Wenn z.B. folgendes dasteht, müsst Ihr die besagte Tabelle in phpMyAdmin reparieren.

    Source Code

    1. sql error: Table 'wcf1_session' is marked as crashed and should be repaired


    Öffnet nun phpMyAdmin, den genauen Link dazu findet Ihr in dem Bereich, wo Ihr euren Webspace konfigurieren könnt. Wenn phpMyAdmin offen ist, markiert entsprechend die Tabelle, die ihr euch von der Fatal Error Meldung gemerkt habt.



    Nun scrollt ihr bis ganz nach unten und wählt im Dropdown "Reparieren" aus, bitte achtet hier darauf, dass Ihr euch nicht verklickt!



    Alternativ, wenn Erfahrungen vorhanden sind, könnt Ihr auch unter dem Menüpunkt "SQL" direkt den Befehl eingeben.

    Source Code

    1. REPAIR TABLE wcf1_session
    Images
    • phpMyAdmin.jpg

      207.18 kB, 937×746, viewed 715 times

    Cannot instantiate interface CacheSource

    Nach dem Abspeichern des Impressums kommt folgende Fehlermeldung im Forum:

    Source Code

    1. PHP Fatal error: Cannot instantiate interface CacheSource in /var/www/wcf/lib/system/cache/CacheHandler.class.php on line 47


    Um das Problem zu beheben, müsst ihr in phpMyAdmin folgende Abfrage ausführen. phpMyAdmin findet ihr in der Regel im Kundeninterface eures Webhosters. Klickt oben auf den Reiter SQL und gebt dort im Feld SQL-Befehl(e) in Datenbank xyz ausführen: folgenden SQL Befehl ein und klickt dann unten auf OK (Wenn ihr eine andere Installationsnummer als die 1 gewählt habt, dann müsst ihr die Abfrage (wcf1_) entsprechend vorher anpassen):

    SQL-Query

    1. UPDATE wcf1_option SET optionValue = 'disk' WHERE optionName = 'cache_source_type'




    Danach müsst ihr euch noch per FTP auf euren Webspace einloggen und die options.inc.php im Forenhauptverzeichnis löschen. Beim nächsten Aufruf des Forums wird diese Datei dann korrekt neu erstellt.
    Andrea Berg
    Customer Support WoltLab® GmbH

    The /e modifier is deprecated, use preg_replace_callback instead

    Nach der Umstellung auf PHP 5.5.0 kommen nur noch deprecated Fehlermeldungen im Forum.

    Fatal error: PHP error in file /var/www/lib/acp/page/IndexPage.class.php (76): preg_replace() [<a href='http://de.php.net/function.preg-eplace'>function.preg-replace</a>]: The /e modifier is deprecated, use preg_replace_callback instead


    Lösung
    Bis das Update auf die Version 3.1.8 bzw. beim Lite 2.1.2 veröffentlicht wird, am besten die deprecated Meldungen von PHP deaktivieren. Dafür folgende Anleitung ausführen:

    Lade die Datei wcf/lib/core.functions.php per FTP auf deine Festplatte herunter. Öffne dann die Datei mit einem Texteditor und änder die Zeile 13 wie folgt:

    ersetze

    PHP Source Code

    1. set_error_handler(array('WCF', 'handleError'), E_ALL);


    mit

    PHP Source Code

    1. set_error_handler(array('WCF', 'handleError'), E_ALL & ~E_DEPRECATED);


    Danach lade die Datei wieder per FTP hoch und überschreibe die vorhandene Datei auf deinem Webspace damit.
    Andrea Berg
    Customer Support WoltLab® GmbH