session.save_path

Mit PHP ist das so eine Sache. Mit WordPress auch. Und mit den Einstellungen des Apache-Servers ganz besonders. Manchmal passieren da die merkwürdigsten Dinge.

Dieses „Kompendium“ läuft ja unter WordPress. Anfangs war auch ein fehlerfreies Schaffen damit möglich. Bis ich auf die Idee kam, ein paar nette Plugins auszuprobieren. Plötzlich und unerwartet tauchten im Dashboard von WordPress merkwürdige Fehler auf:

Warning: Unknown: open(/tmp/sess_d8abf87c41a42f0000e065329f0bacd7, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

Ganz großes Tennis. Aus heiterem Himmel.

Als erfahrener User befragt man erstmal Google … und findet auch scheinbar nützliche Hinweise auf das Problem und auch dazu wie man es löst. In der .htaccess-Datei kann man mittels folgender Anweisung dem Server mitteilen, wo denn nun der Pfad für temporäre Dateien liegen soll. Das sieht dann so aus:

php_value session.save_path /www/htdocs/meier/tmp

Wobei „/www/htdocs/meier/“ der Root-Bereich der eigenen Webseite ist. Dort erstellt man dann den Ordner „tmp“ und gibt diesem volle Rechte: chmod777. Das geht mit einem guten FTP-Client (z.B. FileZilla) ganz einfach.

Genau dies habe ich nun auch gemacht. Aber … erfolglos! 🙁

Rufe ich ein kleines PHP-Script auf, welches lediglich die Zeile „<?php phpinfo(); ?>“ enthält, dann entüllt mir die Ausgabeseite die volle Wahrheit über meine Serverumgebung. U.a. spuckt das Script den eingestellten Wert für session.save_path aus. Und der steht ulkigerweise immer noch auf „/tmp“. Es sieht also so aus, als würde mir die hübsche Direktive in meiner .htaccess-Datei nicht weiterhelfen.

Und nun ?

Eine Mail an den Hoster sollte das Problem lösen. Beim ersten Auftreten dieser Warnings auf einer anderen Webseite erzählte man mir zwar, dass die Zeile doch geholfen hat, nachdem ein Supportmitarbeiter diese eingefügt hat, aber ich denke, dass der korrekte Pfad zum Tmp-Ordner in die php.ini eingetragen worden ist.

Ich lasse mich auch gern eines besseren belehren, wenn ich diese „Tücke“ fälschlicherweise als solche darstelle, aber bis dahin bleibe ich dabei.

Hauptsache es funktioniert dann. Und das tut es auch. 🙂

Nachtrag: Offenbar ist der Weg über die .htaccess genau richtig. Nur – sollte man dann auch alle Cookies der Seite löschen! Dann klappt es auch ohne den Hoster!

Zusammenfassung der Lösung zu session.save_path:

  1. htaccess erstellen oder bestehende erweitern
    php_value session.save_path /www/htdocs/meier/tmp (wobei meier = dem Usernamen ist
  2. Browser-Cache leeren
  3. Cookies der entsprechenden Seite löschen (in meinem Fall alle Cookies von themenmix.de die irgendwas mit wordpress im Wert hatten.

2 Antworten

  1. Hani sagt:

    Hallo Jörg, danke für den Tipp mit den Cookies. Wäre ich sonst nie von selbst darauf gekommen. Punkt 1 (php_value session.save_path in der .htaccess) konnte ich mir aber sparen. Nochmal danke. Hani

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.