Błąd sesji PHP5 w Ubuntu

Jeżeli używasz Debiana lub Ubuntu, może się zdarzyć, że przy wywołaniu funkcji session_start() dostaniesz poniższy komunikat błędu:

ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /sciezka/do/pliku on line xx

Przeważnie taki błąd pojawia się, w przybliżeniu, raz na sto wywołań strony i jest spowodowany automatycznym sprzątaniem sesji (automatic session garbage collection). W Debianie i Ubuntu, pliki sesji trzymane są w var/lib/php5. Katalog ten ma uprawnienia drwx-wx-wt i powinien być dostępny jedynie dla zadań crona.

Przeważnie, automatyczne czyszczenie sesji jest wyłączone przez dostawców pakietów php5. Może się jednak zdarzyć, że tak nie będzie (np. pakiet php5-cli).

Zatem, jeżeli pojawia Ci się powyższy błąd, z dużym prawdopodobieństwem musisz zmienić ustawienia PHP w pliku php.ini. Konfiguracja PHP znajduje się z reguły, w /etc/php5/apache2/php.ini.

Aby wyłączyć automatyczne sprzątanie sesji, znajdź powyższy plik i ustaw opcję session.gc_probability na 0 (zero). Potem zresetuj Apache.

Brak komentarzy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *