php - php.ini 건드리지 않고 세션 시간 수정

웹호스팅을 쓰는 입장에서 php.ini 를 수정하여 세션 시간을 조절할 수 없어서 구글링을 통해 여러가지 방법을 알아내어 적용하다 제대로 적용된 내용을 적어보았다.

  1. .htaccess 파일 생성 또는 수정으로 세션 값 넣기
    해당 파일 안에 아래처럼 넣었다.

    <IfModule mod_php5.c>
        #Session timeout
        php_value session.save_path "/경로/폴더명"
        php_value session.cookie_lifetime 86400
        php_value session.gc_maxlifetime 86400
    </IfModule>

    위에 보면 save_path라고 있다.
    세션 파일들을 저장하는 경로를 설정하는 것인데 서버에 폴더 하나 만든 뒤 권한을 777로 설정한다.
    /경로에는 절대 경로를 넣어야하는데 호스팅을 이용하는 사람이라면 절대경로가 ftp에서 보이는 경로처럼 넣으면 안될 수도 있다.
    서버로 부터 절대 경로를 모른다면 basename(__FILE__) 과 realpath(__FILE__) 를 이용한 절대 경로 알아내는 방법을 검색해 찾아보길 바람.
    86400 은 24시간을 말한다.  (24시간을 초로 환산하면 86400초)

  2. 위 처럼 한 뒤에도 안되서 인클루드 되는 php 파일에 아래 코드를 추가했다.
    $sessdir = "/경로/폴더명";
    ini_set( "session.save_path", $sessdir);
    session_start();
    
    session_cache_limiter('private');
    ini_set("session.cookie_lifetime", "86400");
    ini_set("session.cache_expire", "86400");
    ini_set("session.gc_maxlifetime", "86400");

위 두가지 방법 중 한가지 방법으로 했을 때 성공하면 다른 방법은 안써도 될 것 같다.

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 댓글
Inline Feedbacks
View all comments
TOP