Problemlösungen

Administratoren

< WikiFarmen | Dokumentations-Index | Beantwortete Fragen >

PmWiki ist sehr robust und passt sich automatisch an ein großes Spektrum von Umgebungen an. Dennoch gehen die Dinge nicht immer so, wie wir es erwarten. Deshalb werden hier gewöhnliche Fehler und ihre Beseitigung gesammelt.

Häufig gestellte Fragen zu Problemlösungen

Beachten Sie, diese Seite ist vielleicht nicht der beste Ort, Fragen zu stellen. Erwägen Sie, Unterstützung von den PmWiki-Users-Mailinglisten (auch in Deutsch) oder sie stellen Ihre Frage in der englischen Seite PmWiki:Questions.

Mein Wiki zeigt viele Warnungen an: "Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead".

Das wird von einer Änderung in PHP Version 5.5 für die preg_replace()-Funktion verursacht. PmWiki beruht nicht länger auf dem überholten Feature seit Version 2.2.56 (es wird empfohlen auf die jüngste Version aufzufrischen), aber viele Rezepte tun es noch.

Rezepte und Oberflächen (Skins) werden derzeit aufgefrischt auf PHP 5.5. Sehen Sie nach, ob der Autor eine jüngere Version im Kochbuch veröffentlicht hat. Wenn Sie Ihr PmWiki und Ihre Rezepte aufgefrischt haben und die Warnung noch immer erscheint, finden Sie so heraus, welches Rezept die Warnung verursacht:

Schalten Sie in der config.php alle Rezepte ab: eingefügte Dateien aus dem Kochbuchverzeichnis, eine angepasste Oberfläche und jegliche Zeilen mit "Markup(" oder "Patterns". Sie können den Zeilen ein # voranstellen, um sie abzuschalten. Testen Sie dann das Wiki. Wenn Sie alles abgeschaltet haben, sollte die Warnung verschwinden.

Als Nächstes lassen sie die Anpassungen eine nach der anderen wieder zu, testen Sie jedes Mal das Wiki. Wenn an einer Stelle die Warnungen wieder auftauchen, haben Sie den Übeltäter. Die zuletzt zugelassene Anpassung verträgt sich nicht mit PHP 5.5.

Sie können sich an den Autor wenden und (freundlich) darum bitten, das Rezept an PHP 5.5 anzupassen, jüngeren PmWiki-Versionen sind neue Hilfsfunktionen hinzugefügt, die das vereinfachen, siehe Eigene Auszeichnungen. Wenn Sie das Rezept nicht vom Autor repariert bekommen, erzählen Sie's uns (auf englisch), und wir versuchen die Änderungen vorzunehmen.

Bedenken Sie, dass viele Provider erlauben, verschiedene Versionen von PHP einzusetzen. Sehen in der Dokumentation ihres Hosters nach, um zu erfahren, wie eine PHP version vor 5.5 eingestellt werden kann.

Schließlich: es ist möglich, die Warnungen zu unterdrücken. Setzen Sie dazu diese Zeile an den Anfang Ihrer config.php:
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
Das sollte aber nur eine vorübergehende Lösung sein, die nur solange bestehen bleiben sollte, bis Ihre Rezepte repariert worden sind.

Warum sehe ich befremdliche Fehler nach einem Upgrade?

Versichern Sie sich, dass alle Dateien erneuert wurden, insbesondere pmwiki.php.

Diese Frage taucht manchmal auf, wenn ein Administrator nicht dem Rat gefolgt ist, der auf den Seiten zur Installation und zu ersten Einstellungen nicht sehr auffällig ist, und wenn er stattdessen die Datei pmwiki.php umbenannt hat anstatt ein index.php-Wrapper-Skript zu schreiben. Wenn Sie pmwiki.php in index.php umbenannt haben, hat das Upgrade Ihre index.php-Datei nicht erneuert. Löschen Sie die alte Version (index.php) und erzeugen Sie ein index.php-Wrapper-Skript.

Manchmal versagt ein FTP- oder ein Kopierprogramm dabei, alle Dateien ordentlich zu übertragen. Eine Möglichkeit, das zu überprüfen, ist der Vergleich der Dateigrößen.

Versichern Sie sich, dass auch die Dateien im wikilib.d/-Verzeichnis erneuert worden sind. Manchmal ist es eine gute Idee, das wikilib.d/-Verzeichnis vor dem Upgrade zu löschen. (Lokale Kopien der Dateien werden in wiki.d/ und nicht in wikilib.d/ gespeichert.)

Versichern Sie sich, dass die Dateirechte richtig gesetzt sind. Die offiziellen Dateien haben einen eingeschränkten Satz von Rechten, die vielleicht nicht für Ihre Site passen.

Wenn Sie ein angepasstes Muster für $GroupPattern benutzen, sorgen Sie dafür, dass es Site ($SiteGroup) und seit PmWiki 2,2 auch SiteAdmin ($SiteAdminGroup) enthält. Ansonsten könnte die Eingliederung (des Upgrades) versagen (z. B. fehlende SiteAdmin-Gruppe für PmWiki 2.2 und später) und/oder Login funktioniert nicht. Zusätzlich sollte auch Main ($DefaultGroup) hinzugefügt werden.

Ich bekomme plötzlich Nachrichten wie "Warning: fopen(wiki.d/.flock): failed to open stream: Permission denied..." und "Cannot acquire lockfile" ... Was ist verkehrt?

Etwas (oder jemand) hat die Rechte an der wiki.d/.flock-Datei oder dem wiki.d/-Verzeichnis verändert, sodass der Webserver nicht mehr in der Lage ist, die "Lock"-Datei zu schreiben. Die normale Lösung ist, die .flock-Datei einfach aus dem wiki.d-Verzeichnis zu löschen — PmWiki wird dann eine neue Datei anlegen. Überprüfen Sie aber auch die Rechte am Verzeichnis wiki.d/ selbst. (Man kann die Rechte am wiki.d/-Verzeichnis mit FileZilla (open-source FTP-Programm) leicht prüfen und ändern, indem man auf die Datei mit der rechten Maustaste klickt → File attributes (Dateirechte)).

Meine Verweise in der Sidebar scheinen auf nicht existierende Seiten zu zeigen, obwohl ich genau weiß, dass ich sie angelegt habe. Wo sind die Seiten?

Verweise in der Sidebar müssen mit einer Wikigruppe qualifiziert sein, damit sie ordentlich funktionieren (benutzen Sie [[Gruppe.Seite]] anstatt [[Seite]].
Und schreiben Sie SideBar mit einem großen 'B'.

Warum sehe ich die Nachricht "Warning: Cannot modify header information - headers already sent ..." oben auf meiner Seite.

Wenn das der einzige angezeigte Fehler ist, ist das gewöhnlich ein Zeichen dafür, dass vor dem <?php oder hinter dem ?> in einer Anpassungs-Datei zusätzliche Leerzeichen oder leere Zeilen vorhanden sind. Überprüfen Sie die Dateien noch einmal und versichern Sie sich, dass es keine zusätzliche Leerzeichen oder leere Zeilen vor dem einleitenden <?php gibt. Es ist oft am einfachsten und am sichersten, alle schließenden ?> einfach zu löschen und wegzulassen. In Windows könnte es nötig sein, einen Editor zu benutzen, der die LFCR-Zeilenenden in LF-Zeilenenden ändern kann (z. B. das frei erhältliche notepad++) oder einen Hex-Editor.

Wenn die Warnung nach anderen Warnungen oder Fehlermeldungen erscheint, lösen Sie die anderen Probleme und die Warnung dürfte verschwinden.

Wie bekomme ich eine PHP-Warnung über function.session-write-close weg?

Sie sehen eine Fehlermeldung wie diese:

Warning: session_write_close() [function.session-write-close]:
open(/some/filesystem/path/to/a/directory/sess_[...]) failed: No such file
or directory (2) in /your/filesystem/path/to/pmwiki.php on line NNN

PmWiki benutzt manchmal PHPs session-handling-Funktionen zum verfolgen der Sitzung. Damit die Verfolgung der Sitzung funktioniert, müssen Informationen in ein Verzeichnis auf dem Server gespeichert werden. Das Verzeichnis muss existieren und die Webserver-Software muss Schreibrechte für dieses Verzeichnis haben. Für diese Beispiel sei die Webserversoftware so konfiguriert, dass es die Daten in das Verzeichnis

/ein/dateisystem/pfad/zu/einem/verzeichnis/

schreibt, aber das Verzeichnis existiert nicht. Die Lösung ist, wenigstens eines hiervon auszuführen:

  • Legen Sie das Verzeichnis an und vergewissern Sie sich, dass es vom Webserver beschrieben werden kann.
  • Setzen Sie einen session_save_path-Wert, der auf ein beschreibbares Verzeichnis zeigt, z. V. in config.php:
session_save_path('/home/someuser/tmp/sessions'); # unix-type OS
session_save_path('C:/server/tmp/sessions'); # Windows

Warum fordert mich PmWiki mehrfach zur Eingabe eines Passwortes auf, das ich schon längst eingegeben habe?

Das kann wie aus dem Nichts passieren, wenn Ihr Provider/Hoster ein Upgrade auf PHP 5.3 vorgenommen hat und Sie ein älteres PmWiki benutzen. Eine jüngere PmWiki-Ausgabe wird das Problem lösen.

Alternativ kann das ein Zeichen dafür sein, dass der Browser keine Coolies akzeptiert oder dass PHPs Situngsbehandlungsfunktionen auf dem Server nicht sauber konfiguriert sind. Wenn der Browser Cookies akzeptiert, versuchen Sie $EnableDiag=1; in local/config.php zu setzen, rufen sie PmWiki mit ?action=phpinfo auf und prüfen Sie, dass Sitzungen (sessions) aktiviert sind und dass der session.save_path einen brauchbaren Wert hat. Beachten Sie, dass mehrere PHP-Versionen unter Windows erwarten, dass ein session_save_path explizit gesetzt ist (das können Sie in der local/config.php-Datei machen). Versuchen Sie auch, session.auto_start in ihrer php.ini auf 1 zu setzen.

Sehen Sie auch bei der Frage Ich muss mich zweimal einloggen weiter unten nach.

Ich habe config.php bearbeitet, aber wenn ich auf meine Wikiseiten sehe, sehe ich nur"Parse error: parse error, unexpected T_VARIABLE in somefile on line number.".

Sie haben einen Fehler in dem PHP-Code gemacht, den Sie in die config.php eingefügt haben. Der häufigste Fehler, der zu einem T_VARIABLE-Fehler führt, ist ein vergessenes Semikolon am Ende einer hinzugefügten Zeile. Der Dateiname und die Zeilennummer zeigen, wo sie nach dem Fehler suchen müssten.

Suchen und Seitenlisten hörten auf zu funktionieren, nach dem ich ein Upgrade gemacht habe — Fehler werden nicht gemeldet, aber Verweise auf andere Seiten erscheinen nicht (oder erscheinen nicht so wie sie sollten) — was ist da los?

Gehen Sie sicher, dass auch alle Dateien aus dem wikilib.d/-Verzeichnis ersetzt wurden. Insbesondere hört sich das so an, als fehlte die Site.PageSistTemplates-Seite (wenn keine Verweise auftauchen) oder als sei es eine ältere Version (wenn die Verweise nicht erscheinen wie sie sollten). Stellen Sie auch sicher, dass Leserechte (attr) für die Seiten Site.PageListTemplates und Site.Search gesetzt sind.

Einige meiner Einträge (posts) kommen mit "403 Forbidden"-Fehlern, "Not Acceptable" oder "Internal Server Error" zurück.

Ihr Server hat möglicherweise mod_security aktiviert. Das mod_security-"Feature" scannt alle hereinkommenden Einträge auf verbotene Wörter oder Phrasen, die anzeigen, jemand versucht das System zu hacken. Wenn nur eines davon auftaucht, gibt Apache den "403 Forbidden"-Fehler zurück. Gewöhnlich sind es Phrasen wie "curl", "wget", "file(" und "system(", die tendenziell mod_security anstoßen, obwohl es noch viele weitere gibt.

Da mod_security die Seitenanforderung (request) unterbricht und die "forbidden"-Nachricht zurücksendet, bevor PmWiki je eine Chance hatte zu starten, ist es kein Fehler in PmWiki, und es gibt wenig, was PmWiki dagegen tun kann. Stattdessen muss man die Webserverkonfiguration ändern, um mod_security zu deaktivieren oder man konfiguriert mod_sacurity so um, dass es die verbotenen Wörter erlaubt. In einige Sites ist es möglich, mod_security zu deaktivieren, indem SecFilterEngine off in einer .htaccess-Datei eingefügt wird.

Ich erhalte folgende Nachricht, wenn ich versuche ein Bild hochzuladen. Was kann ich tun?

Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1929 is not allowed to access /home/onscolre/public_html/pmwikiuploads/Photos owned by uid 33 in /home/onscolre/public_html/pmwiki/scripts/upload.php on line 198

PmWiki can't process your request

?cannot move uploaded file to /home/onscolre/public_html/pmwikiuploads/Photos/FoundationPupilsIn1958.jpeg

We are sorry for any inconvenience.

Ihr Server ist mit dem aktivierten PHP-Safe-Mode konfiguriert. Konfigurieren Sie Ihr Wiki so, dass es ein site-weiten Upload-Präfix nutzt, erzeugen Sie dann das upload/-Verzeichnis manuell und setzen Sie die Rechte auf 777 (anstatt PmWiki das Verzeichnis anlegen zu lassen).

Ich sehe neuerdings "Division by zero error in pmwiki.php..." auf meiner Site. Was ist da los?

Es ist ein Fehler, der mit Tabellen-Auszeichnungen und nur bei Versionen von PHP >= 4.4.6 oder >= 5.2.0 auftaucht. Oft scheint er "aus dem Nichts" aufzutauchen, weil der Serveradministrator ein stilles Upgrade von PHP vorgenommen hat. Versuchen Sie ein Upgrade auf eine spätere PmWiki-Version, um den Fehler zu beseitigen oder versuchen Sie, das Folgende in local/config.php einzutragen:

Ich muss mich zweimal (2-mal) einloggen. –oder– Mein Passwort wird nicht verlangt, obwohl das eigentlich so sein sollte. –oder– Ich habe mein Passwort geändert, aber es ist immer noch das alte aktiv. –oder– Mein config.php-Passwort überschreibt nicht mein farmconfig.php-Passwort.

Das kann passieren, wenn (farm)config.php oder ein eingefügtes Rezept die Funktion CondAuth() oder RetrieveAuthPage(), PageTextVar(), PageVar() und mögliche andere Funktionen direkt aufruft, bevor (das nötige) AuthUser eingefügt wurde.

Die Reihenfolge in config.php ist sehr ausschlaggebend.

< WikiFarmen | Dokumentations-Index | Beantwortete Fragen >


Übersetzung von PmWiki.Troubleshooting Originalseite auf PmWikiDe.Troubleshooting - Backlinks
Zuletzt geändert:
PmWikiDe.Troubleshooting am 21.04.2014
PmWiki.Troubleshooting am 17.03.2014

Page last modified on April 21, 2014, at 01:04 PM