Magento CMS और इस तरह (जो पुराने सत्रों की सफाई नहीं कर रहे हैं) के लिए, मैं बस php.ini सेटिंग्स के आधार पर क्रोन जॉब्स का उपयोग करता हूं।
PHP5 / Ubuntu 14.04 / डेबियन
सिस्टम cron.d php5 के लिए सेटअप Magento को साफ नहीं करता है ।/var/session (या डिफ़ॉल्ट सत्र फ़ोल्डर के अलावा कुछ भी नहीं (Ubuntu के लिए / var / lib / php5 और / var / lib / php5 / सत्र या / tmp के लिए) dists)।
लेकिन आप अभी भी डिफ़ॉल्ट php5 / डेबियन सिस्टम क्रोन के अनुसार "सेशनक्लाइन" और "मैक्सलिफ़टाइम" का उपयोग कर सकते हैं:
उदाहरण आप कमांड लाइन से कोशिश कर सकते हैं:
# sudo /usr/lib/php5/sessionclean /var/www/{yoursite}/var/session $(/usr/lib/php5/maxlifetime)
तो बस एक प्रणाली / रूट crontab या सत्र फ़ाइलों के लिए अनुमति पढ़ने / लिखने की अनुमति देने वाले उपयोगकर्ता का एक crontab में शामिल करें:
$ sudo crontab -e
यह जोड़ें कि क्या आप इसे सिस्टम php क्रोन के समान देखना चाहते हैं:
20,40 * * * * [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/www/*/var/session ] && /usr/lib/php5/sessionclean /var/www/{yoursite}/var/session $(/usr/lib/php5/maxlifetime)
या - जब से हम जानते हैं कि वे फाइलें / dirs मौजूद हैं:
20,40 * * * * /usr/lib/php5/sessionclean /var/www/*/var/session $(/usr/lib/php5/maxlifetime)
अब मेरे पास सत्रों की प्रबंधनीय राशि है और इसे php.ini (cli) सेटिंग्स के माध्यम से डिफ़ॉल्ट कचरा संग्रह / जीवनकाल के दौरान साफ रखा जाता है।
(आप वाइल्डकार्ड को ऊपर छोड़ सकते हैं या साइटनेम से बदल सकते हैं।)
EDIT (PHP7 / Ubuntu 16.xx / डेबियन):
'सेशनक्लीन' स्क्रिप्ट बदल गई है और अधिकतम जीवनकाल की स्क्रिप्ट को हटा दिया गया है। सिस्टम / php क्रोन जॉब के लिए यह अब एक स्क्रिप्ट है। आप वास्तव में इसका उपयोग नहीं कर सकते क्योंकि फ़ाइल कॉल अब स्क्रिप्ट के लिए स्थिर है।
यदि सिस्टम साफ नहीं कर रहा है, तो पुरानी php5 सेशन स्क्रिप्ट अभी भी आपके लिए काम कर सकती है। आप क्या कर सकते हैं पुराने डेबियन php5 पैकेज को पकड़ो और sessionclean
इसे से निकालें । या आप इसे अपने स्क्रिप्ट क्षेत्र (उचित / var / www / (साइट) अनुमतियाँ / स्वामित्व दे) को कॉपी कर सकते हैं:
#!/bin/sh
# first find all used files and touch them (hope it's not massive amount of files)
[ -x /usr/bin/lsof ] && /usr/bin/lsof -w -l +d "${1}" | awk -- '{ if (NR > 1) { print $9; } }' | xargs -i touch -c {}
# find all files older then maxlifetime
find "${1}" -depth -mindepth 1 -maxdepth 1 -ignore_readdir_race -type f -cmin "+${2}" -delete
मैं इसका नाम बदलने की भी सलाह देता हूं, इसलिए यह नए php 'sessionclean' cronjob के साथ भ्रमित नहीं है। फिर आप अपना "अधिकतम जीवनकाल" नंबर इस तरह से प्लग कर सकते हैं:
20,40 * * * * /home/-username-/scripts/MySessionClean /var/www/*/var/session 61
(६१ उदाहरण उम्र (मिनटों में) और being MySessionClean ’नाम दिया गया php5 स्क्रिप्ट डाउनलोड या ऊपर से कॉपी किया जा रहा है)।
इस तरीके से हम पूरी तरह से php.ini / env कॉल से बचते हैं।
(EDIT 13DEC2016: अद्यतित DEBIAN ARCHIVE REPO LINK)