이전 세션을 정리하지 않은 Magento CMS 등의 경우 php.ini 설정에 따라 cron 작업을 사용합니다.
PHP5 / 우분투 14.04 / 데비안
php5에 대한 시스템 cron.d 설정은 Magento ./var/session (또는 기본 세션 폴더 (Ubuntu의 경우 / var / lib / php5 및 / var / lib / php5 / sessions 또는 / tmp /) dists).
그러나 기본 php5 / Debian 시스템 크론에 따라 "sessionclean"및 "maxlifetime"을 계속 사용할 수 있습니다.
예를 들어 명령 행에서 시도 할 수 있습니다.
# sudo /usr/lib/php5/sessionclean /var/www/{yoursite}/var/session $(/usr/lib/php5/maxlifetime)
따라서 시스템 / 루트 crontab 또는 세션 파일에 대한 읽기 / 쓰기 권한이있는 사용자 crontab에이를 통합하십시오.
$ sudo crontab -e
이것은 시스템 PHP cron과 유사하게 보이기를 원합니다.
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)
또는-해당 파일 / 디렉토리가 존재한다는 것을 알고 있기 때문에 :
20,40 * * * * /usr/lib/php5/sessionclean /var/www/*/var/session $(/usr/lib/php5/maxlifetime)
이제 관리 가능한 양의 세션이 있으며 php.ini (cli) 설정을 통해 기본 가비지 수집 / 수명을 통해 깨끗하게 유지됩니다.
(와일드 카드를 그대로 두거나 사이트 이름으로 바꿀 수 있습니다.)
편집 (PHP7 / Ubuntu 16.xx / Debian) :
'sessionclean'스크립트가 변경되었으며 maxlifetime 스크립트가 제거되었습니다. system / php cron 작업의 경우 이제 하나의 스크립트입니다. 파일 호출이 이제 스크립트에 정적 인 상태이므로 더 이상 이것을 사용할 수 없습니다.
시스템이 정리되지 않으면 이전 php5 sessionclean 스크립트가 여전히 작동합니다. 당신이 할 수있는 일은 오래된 데비안 php5 패키지를 잡고 압축 sessionclean
을 푸는 것입니다. 또는 이것을 스크립트 영역에 복사하면됩니다 (적절한 / var / www / (site) 권한 / 소유권 부여) :
#!/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과 혼동되지 않습니다. 그런 다음 자신의 "maxlifetime"번호를 다음과 같이 연결할 수 있습니다.
20,40 * * * * /home/-username-/scripts/MySessionClean /var/www/*/var/session 61
(61은 예제 나이 (분)이고 'MySessionClean'은 위에서 다운로드하거나 복사 한 이름이 바뀐 php5 스크립트입니다).
이런 식으로 우리는 php.ini / env 호출을 완전히 피합니다.
(편집 13DEC2016 : 업데이트 된 DEBIAN ARCHIVE REPO LINK)