Apache süresiz olarak askıda neden PHP oturumları

2 Cevap php

Sorun her öylesine sık sık bir Oturum yazar bir sayfa apache belirli bir oturum için sonsuza kadar askıda kalmasına neden olacaktır. Bu hata oluştuğunda bir kez kullanıcı için herhangi bir kullanıcı herhangi bir oturumuna başka modifikasyonlar et Bu kullanıcının asmak için neden olacaktır.

Bu sorun gün için benim tek odak noktası olmuştur. Ben Windows 2003 çalıştıran bir gelişme VPS ve standart PHP oturum işleyicisi kullanarak XAMPP son sürümünü varsayılan. Benim sağduyu bir web sunucusu yapılandırması sorunu var diyor, ancak bu nedenle söz konusu kod aslında mükemmel normalde diğer iki makinede çalışır ama bu noktada ben bir şey denemek için hazırım.

Ayrıca soruşturma Apache, PHP veya Sistem olay günlüğünde bir hata vardır. Kaynakları bol olan ve hiçbir "AJAX bok fırtına" ya da bir kaç sayfa başına bir oturuma yazar daha var. Ben de () mümkün deneyin ve sorunu yükseltmesine yardımcı session_write_close hayata geçirdik.

Ben "C: \ windows \ Temp" ayarlandığında oturumun dizini kontrol ve kullanıcı bu asılı fazına girer kez gelen oturumu dosya sadece kilitli olduğundan ve bu sorunu çözmek için tek yol Apache durdurmak ve beklemek olduğunu bulundu dosyalar için birkaç dakika kilidi olmak ve bunları silmek için. Silinmesi gerekiyorsa ben merak etmiyorum.

Sessions kendilerini sadece 4 bit bilgi içerir. ShoppingCartID, UserID, userlevel ve Yönlendiren URL ve arada bir çizgi ile alfanümerik vardır.

Benim PHP.INI 'un oturum bölümde bu gibi yapılandırılmış:

session.save_handler = files
session.save_path = "C:\WINDOWS\Temp"
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.referer_check =
session.entropy_length = 0
session.entropy_file =
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 4

Aklıma her şeyi denedim ve bütün sorun artık benim için bir karaltı. Herhangi bir fikir takdir ve teşekkür için senin zaman bu okuma :)

2 Cevap

Windows veya düzgün yapılmazsa bazı php.ini ayarları tarafından kilitli kalması oturum dosyaları olabilir. Lütfen SEE HERE

Neredeyse kilit dosyalarını söylemek istiyorum.

Bu app dahili tekrar dahili aynı siteden bir sayfa istediğinde mümkün mü? Sen sayfa A, yukarı patlar oturumu kilitler ve sonra bir şekilde kendisine bir isteği tetikler, ya da bir tür yarış durumu isabet olabilir de yeniden başlatmak kilitli şimdi oturumu, ve istek çalışır sayfa B, kilitleniyor.

Asmak is kilitli oturum dosyasının neden Aksi takdirde, ben süreçler oturum dosyasını kullanarak ne bir listesini almak için Sysinternal en gibi bir şey 'Handle' kullanarak öneririm soru.