PHP: oturum dosyalarının sayısını sınırlamak için nasıl?

2 Cevap php

Ben periyodik oturum dosyaları dışarı tmp çıkarın. Görünüşe göre, ben çünkü seans büyük sayıda oturumları idare edememek. Eğer oturumları nasıl yönetirim, bunların miktarı çok büyük olma değil? Eğer biri varsa eğer, yeni bir oturum yapmayın emin nasıl yapabilirim?

Ben nasıl gerçekten işe emin değil kullanmış komut:

ob_start (); 
session_save_path("/tmp/");
session_start();
ob_end_flush ();

2 Cevap

Düzgün yapılandırılmış bir PHP kurulumu, sen elle oturum verilerini temizleme olmak gerekmez. Sen sessions in the manual üzerindeki sayfaları üzerinden okumak ve configuration directives bazı kontrol etmelidir. Oran gc_maxlifetime çok yüksek bir değere ayarlanır ve onlar sadece otomatik tahsil edilecek "bitiş" sınırına ulaşmış değil ki vardır. Onların çalışma zamanı sırasında (ini_set() kullanarak) oturum ayarları için garip değerlerini ayarlayarak değil emin olmak için uygulamalarınızı kontrol etmelisiniz.

PHP session_start() o bir çöp temizleme çalışma yapmak ve eski oturum dosyaları kaldırmak karar verir çalışan bir iç algoritması vardır. Performans nedenleriyle, ben ortalama bir çöp toplama rutin her 100 session_start() çağrıları bir kez başlamış olacak böylece çalışsan her zaman yapmak için varsayılan şans,% 1 olduğuna inanıyorum. Eğer bu yeterli değildir bulursanız, gc_divisor 1'den daha yüksek bir şey ayarını yükseltebilirsiniz.

Onlar birkaç saat eski daha konum kez PHP otomatik olarak eski oturum dosyaları kaldırma edilmelidir. Sizin session.gc_probability, session.gc_divisor ve session.gc_maxlifetime ayarları garip değerleri içerebilir. Daha fazla bilgi ve varsayılan için sessions runtime configuration section of the PHP manual edin.

Bu olabilir bir şey değildir (ya da olmalıdır) kendi yönetme girişiminde.

Hala çok sayıda dosya ile sona varsa, oturumları için alt dizinler oluşturmak için session.save_path olarak gelişmiş ayarları kullanarak bakmak. Bu tek tek dosyalar için dosya sistemi erişimi hızlandırmak gerekir.