2011-12-04 3 views
5

VPS에서 PHP Fastcgi가 포함 된 nginx 서버로 웹 사이트를 실행하고 있습니다. php.ini (/ etc/php5/cgi)에서 PHP 세션을 3 일 (259200 초) 이상 지속하도록 구성하려고 시도했지만 작동하지 않아 PHP 세션이 1 시간 이상 지속되지 않습니다. php.ini 파일에서PHP 세션이 너무 일찍 만료됩니다.

내 현재 세션 설정 :

session.use_cookies = 1 
session.use_only_cookies = 1 
session.name = PHPSESSID 
session.auto_start = 0 
session.cookie_lifetime = 259200 
session.cookie_path =/
session.cookie_domain = 
session.cookie_httponly = 
session.serialize_handler = php 
session.gc_probability = 1 
session.gc_divisor = 1000 
session.gc_maxlifetime = 259200 
session.bug_compat_42 = Off 
session.bug_compat_warn = Off 
session.referer_check = 
session.entropy_length = 0 
session.cache_limiter = nocache 
session.cache_expire = 259200 
session.use_trans_sid = 0 
session.hash_function = 0 

여기에 문제가있을 수 있습니다 무엇입니까?

+1

php.ini 파일이 PHP에로드되어 있습니까? 당신은'phpinfo()'의 "Loaded Configuration File"경로를 두 번 확인해 보았는가? – animuson

+0

PHP ini 값의 적용 가능한 모든 설정에서 PHP 파일에서'var_dump (ini_get ('session.cookie_lifetime'));를 사용하여 다른 곳에서 덮어 쓰지 않도록하십시오. – Treffynnon

+0

@animuson : 예,로드 중입니다. 구성 파일 (php.ini 파일) 경로 \t을/etc/PHP5/CGI 로드 구성 파일 \t /etc/php5/cgi/php.ini 스캔 추가 .INI 파일 \t /etc/php5/cgi/conf.d이 디렉토리 추가로 .ini 파일을 구문 분석 \t /etc/php5/cgi/conf.d/curl.ini, /etc/php5/cgi/conf.d/gd.ini, /etc/php5/cgi/conf.d/mysql. ini, /etc/php5/cgi/conf.d/mysqli.ini, /etc/php5/cgi/conf.d/pdo.ini, /etc/php5/cgi/conf.d/pdo_mysql.ini – NeDark

답변

10

서버에서 우분투 또는 데비안과 약간 비슷한 소리가납니다. 내가 제대로 기억한다면 cronjob 어딘가에 (php5 나 ​​php5-common 패키지로 설치되어있다.) cronjob이있어 세션 디렉토리를 더 자주 정리할 수있다.

세션을 다른 (기본값보다) 저장하도록 구성하는 것이 좋습니다. session.save_path을 조정하고 cronjob이 비어 있는지 확인하십시오.

cronjob은 /etc/cron.d/php과 같은 어딘가에 있습니다 - 확실하려면 dpkg -L php5 또는 dpkg -L php5-common을 실행하십시오. 당신이 우분투 (또는 데비안)에 있다고 가정하면, 이것은 설치된 모든 파일의 위치를 ​​보여줄 것입니다.

+0

마지막으로 [memcached로 세션 저장] (http://www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/)으로 문제를 해결했습니다. 그러나 귀하의 솔루션은 유효 해 보이므로 귀하의 답변을받을 수 있습니다. 감사. – NeDark

4

하는 당신에게 디버그를하기 위해, 당신은 실행하여 PHP의 cron 작업은 "보는"것이 현재 설정을 확인할 수 있습니다

는/usr/lib 디렉토리/PHP5/maxlifetime에게 maxlifetime 스크립트가 검색

모든 PHP는 .ini 파일은 session.gc_maxlifetime에 사용되며 가장 큰 값을 사용합니다. 인쇄 된 값은 분 단위입니다.

+0

이것은 우분투 15.10의 스크립트입니다 :/usr/lib/php5/sessionclean – talsibony

관련 문제