क्यों डेबियन साफ ​​php सत्र के साथ एक cron नौकरी के बजाय php में निर्मित कचरा कलेक्टर का उपयोग करता है?


26

डेबियन और डेरिवेटिव (उबंटू) php सत्र कचरा कलेक्टर का उपयोग नहीं करते हैं

session.gc_probability = 0

इसके बजाय वे cron /etc/cron.d/php5 का उपयोग करते हैं

09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete

डेबियन ने ऐसा करने के लिए क्यों चुना है?

जवाबों:


29

क्योंकि डेबियन /var/lib/php5PHP सत्र अपहरण को रोकने के लिए (1733, स्वामी रूट, समूह रूट) पर बहुत कठोर अनुमतियाँ सेट करता है । दुर्भाग्य से, यह देशी PHP सत्र कचरा संग्रहकर्ता को काम करने से रोकता है, क्योंकि यह सत्र फ़ाइलों को वहां नहीं देख सकता है। क्रॉन जॉब रूट के रूप में चलती है, जिसमें सत्र फ़ाइलों को देखने और साफ करने के लिए पर्याप्त पहुंच है।

संपादित करें : सहायक प्रलेखन: व्यवहार बग # 267720 के जवाब में स्थापित किया गया था । ( php.iniइस बारे में स्टॉक फ़ाइल में टिप्पणियां हुआ करती थीं , लेकिन मैं उन्हें अब वहां अपने घर पर आधारित PHP इंस्टॉल नहीं करता हूं।)


/ Var / lib / php5 ar drwx-wx-wt (rooot-root) पर अनुमति देता है, इसलिए अपाचे उपयोगकर्ता dir सामग्री (चिपचिपा बिट) लिख सकता है, लेकिन इसे नहीं पढ़ सकता है। तो मैं समझता हूं कि php का कचरा संग्रहकर्ता सत्र फ़ाइलों के atime को खाली नहीं कर पाएगा, इसलिए यह नहीं चुन सकता है कि कौन सी फाइलें हटाई जाएं ... क्या मैं सही हूं?
nulll

हाँ, यह सही है।
asciiphil

5

यह कम ट्रैफ़िक वाली साइटों पर थोड़ा अधिक विश्वसनीय होने की संभावना है (यदि आपको केवल एक दिन में एक सौ हिट्स मिलते हैं और जीसी केवल हर हजार या तो आग लगाता है, तो सत्र अधिक से अधिक समय तक रहना चाहिए) और मुझे लगता है कि यह एक हो सकता है यदि आप बहुत सारे सत्र प्राप्त कर चुके हैं तो मूल GC की तुलना में सर्वर पर बहुत कम कठोर है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.