본문 바로가기
IT tech Coding/php

가비아 세션시간 너무 짧아서 늘리려면? 고객센터 답변 내용 참조

by Coding Life 2023. 7. 6.

질문

안녕하세요. 가비아 웹호스팅을 사용하고 있습니다.

코드를 넣으니 계속 오류가 발생해서 첨부파일로 이미지로 넣었습니다.

이렇게 해서 질문을 했지요~

게시판 오류가 엄청 나서.. 이미지로 만들어서 올림.. ㅎ

 

 

가비아의 답변은 그래도 도움이 많이 될 것 같고... 이걸 찾는 분들이 많을 것 같아서 

글로 올려봅니다.

 

답변

안녕하십니까? 가비아 입니다.

가비아 웹호스팅의 세션 기본 설정 값은 아래와 같습니다.

session.cache_expire 180(3분)

session.gc_maxlifetime 1440(24분)



최상위 경로(홈 디렉토리)의 .htaccess 파일 내에 아래 구문 삽입하면 최댓값으로 이용할 수 있습니다.

홈페이지 소스에 대한 적용은 직접 진행해주셔야 하는 점 서비스 이용에 참고하여주시기 바랍니다.



php_value session.gc_maxlifetime 86400

php_value session.cache_expire 86400



최대 설정한 값을 초과하는 값으로 설정시 기본 호스팅 설정 값(master value)이 적용됩니다.


다른 궁금하신 사항이나 불편 사항이 있으시면, 고객센터(1544-4370)로 문의하시기 바랍니다.
(고객센터 운영 시간 : 09:00 ~ 18:00(주말, 공휴일 제외))
앞으로도 가비아는 더 나은 서비스를 제공하기 위해 항상 노력하겠습니다.
가비아 서비스를 이용해 주셔서 감사합니다.

<?php
// 세션을 시작하거나 기존 세션을 재개합니다.
session_start();

// 세션의 만료 시간을 확인합니다.
$expiryTime = ini_get('session.gc_maxlifetime');
$remainingTime = 0;

// 세션의 만료 시간과 현재 시간을 비교하여 남은 시간을 계산합니다.
if (isset($_SESSION['LAST_ACTIVITY'])) {
  $lastActivity = $_SESSION['LAST_ACTIVITY'];
  $currentTime = time();
  $elapsedTime = $currentTime - $lastActivity;
  
  if ($elapsedTime < $expiryTime) {
    $remainingTime = $expiryTime - $elapsedTime;
  }
} else {
  // 'LAST_ACTIVITY' 세션 변수가 정의되지 않은 경우, 기본값으로 남은 시간을 설정할 수 있습니다.
  // 예를 들어, 1시간(3600초)로 설정할 경우:
  // $remainingTime = 3600;
}

// 세션의 남은 시간을 반환합니다.
echo $remainingTime;

위는 실제 php코드에서 확인하는 방법

 

php .htacess  파일내용..

# HTID:11765931: DO NOT REMOVE OR MODIFY THIS LINE AND THE LINES BELOW
php_value display_errors 1
php_value session.gc_maxlifetime 86400
php_value session.cache_expire 86400
# DO NOT REMOVE OR MODIFY THIS LINE AND THE LINES ABOVE HTID:11765931:

# CORS-enabled images & webfonts / Access-Control-Allow-Origin 관련 패치
<IfModule headers_module>
  <IfModule setenvif_module>
    <FilesMatch "\.(gif|png|jpe?g|svgz?|ico|webp)$">
      SetEnvIf Origin ":" IS_CORS
      Header set Access-Control-Allow-Origin "*" env=IS_CORS
    </FilesMatch>
  </IfModule>
  <FilesMatch "\.(ttf|ttc|otf|eot|woff2?|css|js)$">
    Header set Access-Control-Allow-Origin "*"
  </FilesMatch>
</IfModule>

Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"

 

주어진 .htaccess 파일에 php_value session.gc_maxlifetime 86400와 php_value session.cache_expire 86400를 추가하면 됩니다. 이렇게 설정하면 세션의 최대 수명과 캐시 만료 시간이 86400(24시간)으로 설정됩니다.
위 구문을 추가한 후 웹사이트를 다시 로드하면 변경된 세션 설정 값이 적용될 것입니다.
추가로, 주의해야 할 점은 가비아 웹호스팅에서 제공하는 세션 설정 값은 서버의 기본 설정이기 때문에, 이 값을 변경하여도 실제로 사용되는 세션 설정 값이 변경되지 않을 수 있다는 점입니다. 따라서, 이 값을 직접 설정하는 것이 중요합니다.

htaccess 파일을 수정하면 서버를 다시 재부팅해야 하나?

일반적으로 `.htaccess` 파일을 수정했을 때에는 서버를 다시 재부팅할 필요가 없습니다.
`.htaccess` 파일은 웹 서버 소프트웨어인 Apache에서 요청을 처리하는 동안에 파일의 내용을 확인하고 적용합니다.

`.htaccess` 파일을 수정한 후 변경 사항이 즉시 적용되기 위해서는 몇 가지 사항을 고려해야 합니다:

1. 파일 경로와 이름이 정확한지 확인하세요: `.htaccess` 파일은 웹 서버의 루트 디렉토리 또는 해당 디렉토리의 하위 디렉토리에 있어야 합니다. 파일 이름이 올바르고 파일이 존재하는지 확인하세요.

2. 웹 서버가 `.htaccess` 파일을 읽도록 설정되어 있는지 확인하세요: Apache 웹 서버의 기본 설정에서 `.htaccess` 파일을 읽도록 허용하는 설정이 활성화되어야 합니다. 일반적으로 `AllowOverride` 디렉티브를 사용하여 `.htaccess` 파일을 허용하도록 설정합니다. 서버 설정 파일(`httpd.conf` 또는 `apache2.conf`)에서 이를 확인하고 설정해야 합니다.

3. 웹 서버의 캐시를 비우세요: 웹 서버가 이전에 로드한 `.htaccess` 파일을 캐시로 저장할 수 있습니다. 변경 사항이 즉시 반영되지 않을 수 있으므로, 웹 서버의 캐시를 비우고 새로고침하여 변경 사항을 확인하세요. 캐시를 비우는 방법은 서버 설정에 따라 다를 수 있습니다. 일반적으로 위의 사항을 확인하고 `.htaccess` 파일을 수정한 후에는 변경 사항이 즉시 적용됩니다. 서버를 재부팅할 필요는 없습니다. 그러나 웹 서버와 설정에 따라 다소 차이가 있을 수 있으므로, 변경 사항이 적용되지 않는 경우 서버나 설정을 확인하는 것이 좋습니다.

 

웹캐시를 비우는 방법

웹 캐시를 비우는 방법은 웹 서버나 브라우저에 따라 다를 수 있습니다.
아래에서는 일반적인 방법 몇 가지를 안내해 드리겠습니다.

1. 웹 브라우저 캐시 비우기: - 대부분의 웹 브라우저는 개발자 도구(개발자 콘솔)를 통해 캐시를 비울 수 있는 옵션을 제공합니다. 보통 `Ctrl + Shift + Delete` 키를 누르거나 브라우저 메뉴의 설정 옵션에서 찾을 수 있습니다. - 캐시 삭제 옵션을 선택하고 브라우저 캐시와 쿠키를 지우는 것으로 시작합니다.

2. 웹 서버 캐시 비우기: - 웹 서버의 캐시를 비우기 위해서는 해당 서버의 관리 인터페이스 또는 명령어를 사용해야 합니다. - Apache 웹 서버의 경우, `.htaccess` 파일의 수정 사항이 즉시 반영되지 않을 때는 `service apache2 restart`(Linux) 또는 `httpd -k restart`(Windows)와 같은 명령어를 사용하여 웹 서버를 재시작할 수 있습니다. - Nginx 웹 서버의 경우, `service nginx restart`(Linux) 또는 `nginx -s reload`와 같은 명령어를 사용하여 웹 서버를 재시작할 수 있습니다.

3. 캐시 버스팅(Cache busting): - 캐시 버스팅은 웹 페이지에서 정적 리소스(예: CSS, JavaScript, 이미지 파일)의 URL을 변경하여 새로운 버전으로 인식되도록 하는 방법입니다. 이를 통해 웹 브라우저는 새로운 버전의 파일을 가져오게 되어 이전 캐시된 파일을 사용하지 않습니다. - 캐시 버스팅을 위해서는 정적 리소스의 URL에 고유한 쿼리 매개변수를 추가하거나 파일 이름을 변경하는 방식을 사용할 수 있습니다.

예를 들어, `style.css` 파일을 `style.css?v=12345`와 같이 수정하면, 브라우저는 이를 새로운 파일로 인식하고 이전 캐시를 우회합니다. 위의 방법들은 일반적인 캐시 비우기 절차입니다. 하지만 웹 서버와 브라우저에 따라 차이가 있을 수 있으므로, 사용하는 환경에 맞게 적절한 방법을 선택하시기 바랍니다.

 

반응형