BOARD

문제 해결

PHP 버전 업그레이드 후 그누보드에서 발생하는 'A session is active' 경고 에러 해결 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 2회 작성일 26-10-07 15:27

본문

PHP 버전 업그레이드 후 그누보드에서 발생하는 'A session is active' 경고 에러 해결 방법

서버 이전이나 PHP 버전 업그레이드 후 그누보드 페이지 상단에 나타나는 'A session is active' 경고 메시지의 원인을 파악하고, /common.php 파일을 수정하여 에러를 깔끔하게 해결하는 방법을 안내합니다.

서버 이전 및 PHP 버전 업그레이드 후 'A session is active' 에러 발생 원인

서버를 이전하거나 PHP 버전을 업그레이드했을 때 페이지 상단에 Warning: ini_set(): A session is active 경고가 발생하는 원인은 세션이 이미 시작된 상태에서 ini_set 함수를 호출하여 세션 관련 설정을 변경하려고 할 때 발생합니다.

/common.php 파일 세션 경고 메시지 수정 방법

서버 이전이나 PHP 버전 업그레이드 후 페이지 상단에 Warning: ini_set(): A session is active 관련 경고가 발생할 경우, /common.php 파일의 코드를 수정하여 에러 출력을 억제할 수 있습니다.

수정 위치 및 방법

  1. 편집할 파일 경로: /common.php
  2. 대상 코드 앞에 @ 기호를 추가하여 에러 출력을 억제합니다.
@ini_set("session.use_trans_sid", 0);
@ini_set("url_rewriter.tags", "");
  • 원문 자료에 따르면 기존 ini_set("session.use_trans_sid", 0); 코드 앞에 @를 추가하여 경고를 방지할 수 있습니다.
  • 바로 밑에 있는 ini_set("url_rewriter.tags",""); 코드 앞에도 동일하게 @ 기호를 붙여 함께 정비합니다.

PHP ini 설정 파일의 session.auto_start 값 변경과 해결 방법

PHP 버전 업그레이드나 서버 이전 후 발생하는 Warning: ini_set(): A session is active 경고는 세션이 이미 시작된 상태에서 ini_set 함수로 세션 설정을 변경하려고 할 때 발생합니다.

php.ini 설정 점검

웹서버 환경 설정 파일인 php.ini에서 세션 자동 시작 옵션이 켜져 있으면 이 문제가 발생할 수 있습니다. 이를 제어하려면 아래와 같이 설정합니다.

  1. php.ini 파일을 엽니다.
    # vi /etc/php.ini
  2. session.auto_start 항목을 찾아서 값을 0으로 설정합니다.
    ; Initialize session on request startup.
    session.auto_start = 0
  3. 설정을 변경한 후 웹서버(Apache 등)를 재시작합니다.

이 설정은 서버 환경에 따라 추가로 점검할 수 있는 대안적 조치이며, 모든 사용자에게 필수는 아닙니다.

/common.php 파일 조치

php.ini 수정 외에 그누보드 소스 코드 레벨에서 에러 출력을 억제하려면 /common.php 파일에서 문제가 되는 ini_set 설정 함수 앞에 @ 기호를 추가하여 경고를 방지할 수 있습니다.

모바일 기기 사용 시 IP 변경 등으로 인해 로그인이 자주 풀리는 현상은 그누보드의 세션 유지 시간을 조정하여 보완할 수 있습니다. 그누보드 설치 경로의 /common.php 파일에서 다음 세션 관련 설정값을 적절히 변경하십시오.

세션 유지 설정 조정 방법

  1. /common.php 파일을 엽니다.
  2. ini_set 함수를 사용하여 아래의 두 가지 값을 수정합니다.
    • session.cache_expire: 세션을 사용하는 페이지의 캐시 보관 시간(분 단위)
    • session.gc_maxlifetime: 세션 데이터의 가비지 컬렉션(Garbage Collection) 존재 기간(초 단위)
// 예시: 세션 캐시 보관 시간 180분, 세션 유지 시간 10800초(3시간)로 설정
ini_set("session.cache_expire", 180);
ini_set("session.gc_maxlifetime", 10800);

모바일 환경은 이동 시 IP가 변경되어 세션이 만료되기 쉬우므로, 위와 같이 session.gc_maxlifetime 값을 늘려 세션 유지 시간을 연장하는 것이 도움이 될 수 있습니다.

상황별 판단 및 대응 가이드

  • 내 상황: PHP 버전 업그레이드 또는 서버 이전 후 페이지 상단에 Warning: ini_set(): A session is active 경고가 발생함
  • 선택 기준: 세션이 이미 시작된 상태에서 ini_set 함수 호출로 인해 발생하는 경고이므로, 코드 레벨에서 에러 출력을 억제하거나 서버 설정을 조정함
  • 다음 행동: /common.php 파일 내 대상 ini_set 함수 앞에 @ 기호를 추가하거나, 필요시 php.ini의 session.auto_start 값을 0으로 설정함

실전 FAQ

Q. /common.php 파일을 수정했음에도 세션 관련 경고가 사라지지 않아요.

  • 예외 및 대안: 이미 시작된 세션 관련 설정이 여러 곳에 분산되어 있거나 캐시 파일 문제일 수 있습니다. 설정 변경 후 브라우저 캐시를 비우거나 서버의 세션 저장 경로(예: data/session 폴더 등)의 임시 파일을 정리한 뒤 다시 확인해 보세요.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.