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 파일의 코드를 수정하여 에러 출력을 억제할 수 있습니다.
수정 위치 및 방법
- 편집할 파일 경로:
/common.php - 대상 코드 앞에
@기호를 추가하여 에러 출력을 억제합니다.
@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에서 세션 자동 시작 옵션이 켜져 있으면 이 문제가 발생할 수 있습니다. 이를 제어하려면 아래와 같이 설정합니다.
php.ini파일을 엽니다.# vi /etc/php.inisession.auto_start항목을 찾아서 값을0으로 설정합니다.; Initialize session on request startup. session.auto_start = 0- 설정을 변경한 후 웹서버(Apache 등)를 재시작합니다.
이 설정은 서버 환경에 따라 추가로 점검할 수 있는 대안적 조치이며, 모든 사용자에게 필수는 아닙니다.
/common.php 파일 조치
php.ini 수정 외에 그누보드 소스 코드 레벨에서 에러 출력을 억제하려면 /common.php 파일에서 문제가 되는 ini_set 설정 함수 앞에 @ 기호를 추가하여 경고를 방지할 수 있습니다.
모바일 기기 사용 시 IP 변경 등으로 인해 로그인이 자주 풀리는 현상은 그누보드의 세션 유지 시간을 조정하여 보완할 수 있습니다. 그누보드 설치 경로의 /common.php 파일에서 다음 세션 관련 설정값을 적절히 변경하십시오.
세션 유지 설정 조정 방법
/common.php파일을 엽니다.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폴더 등)의 임시 파일을 정리한 뒤 다시 확인해 보세요.
함께 보면 좋은 글
- PHP 버전 업그레이드 시 그누보드 pregreplace /e 모디파이어 deprecated 에러 해결 방법
- MySQL 5.x 업그레이드 후 발생하는 그누보드 1364 오류 해결 방법
- MySQL 쿼리 에러 발생 시 파일명과 라인 번호를 함께 출력하여 디버깅하는 방법
참고자료
기타 참고자료
- 이전글그누보드 설치 에러 Connect Error: Access denied for user 원인과 해결 방법 26.10.07
- 다음글PHP 버전 업그레이드 시 그누보드 pregreplace /e 모디파이어 deprecated 에러 해결 방법 26.10.07
댓글목록
등록된 댓글이 없습니다.