CI 묻고 답하기

제목 centos7 / ci 3 / php 5.6 session_start() Failed to initialize storage module 관련 오류
카테고리 CI 2, 3
글쓴이 K_yPark 작성시각 2019/10/23 12:12:02
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 14600   RSS

안녕하세요 웹 사이트 개발 진행을 하다가 갑작스럽게 이슈가 생겨 문의드립니다.

웹사이트가 접속이 잘 되다가(지난주 금요일까지는 정상 작동하고 있었습니다..)

월요일에 확인해보니 500에러를 보이면서 접속이 안되더라구요.

 

서버로그 확인해보니 제목과 같이 스토리지모듈을 초기화 할 수 없다는 에러로그가 찍혀있었는데

해당 건으로 구글에 검색해보니 session.save_path 부분을 수정하라는 답변이 있어서 혹시몰라 조치를 했는데도 변화가 없었습니다.

 

생각해보면 저걸 수정하기 전에는 잘 돌아가고 잘 접속 되던 사이트가 갑작스럽게 왜 안되는건지... 세이브패스 부분은 일체 손도 대지 않았었구요

 

그래서 혹여나 서버 자체문제인가 싶어서 aws에 인스턴스를 새로 파서 같은 환경으로 apm설치 후 디비만 원래 있던쪽으로(데이터 이전작업은 하지 못했고, 새로만든 서버에서 정상접속되는것은 확인했습니다) 연결시켜서 다시 구동시켜봤는데 똑같은 500에러가 나고 있습니다...

 

개발서버가 따로 없어서 실 서버에 올리기 전 로컬에서 작업을 하는데(윈도우, 맥) 두군데서는 정상 작동을 하고 있는 페이지가 왜 리눅스서버에만 올라가면 작동을 안하는지 .... 다른 해결책이 있다면 조언을 구하고 싶습니다 ㅠㅠ

 

작업내역 : save_path 지정(php.ini 파일내부에서 지정하는 경로를 CI config.php파일과 동일하게 지정하였습니다), 해당 패스 폴더 권한 설정(httpd가 실행되는 유저.그룹 과 동일하게, 777권한), DB 세션 테이블도 있는 것 확인

 

해당 웹 서버는 정상적으로 동작하고 있는 것 같습니다. phpinfo등 다른 디렉토리로 접근을 하면 정상적으로 페이지 내용이 나오고, 코드이그나이터를 타는 순간 500에러가 나오는거 같습니다.,..

 

 다음글 extends 뒤에 붙는 \CI_Model 와 CI_... (2)
 이전글 우분투 18.01 index 죽이기 문의 (5)

댓글

변종원(웅파) / 2019/10/23 12:24:50 / 추천 0
세션 드라이버를 파일로 바꿔서 테스트 해보시고 db 연결이 잘 되고 있는지도 확인해보세요.
한대승(불의회상) / 2019/10/23 12:32:28 / 추천 0
아파치, PHP 에러 로그를 먼저 확인하여 정확한 오류가 무엇인지 부터 파악하세요.
K_yPark / 2019/10/23 13:58:55 / 추천 0
웅파님 세션드라이버를 파일로 변경하니 

이런 에러가 나오고 있습니다. 이건 또 처음보는 오류네요.... 디비는 aws인스턴스에서 직접 mysql로 접속 했을 때 정상적으로 접속 되고 ci_sessions 라는 테이블이 있는것도 확인이 되고 있습니다....

 

K_yPark / 2019/10/23 14:04:56 / 추천 0
불의회상님 서버 에러로그는 윗 댓글 이미지에 있는것(세션 드라이버를 파일로 지정 했을 때)과 게시글 제목과 같은 오류(세션 드라이버를 데이터베이스로 지정했을 때)가 나오는데 이것과 다른 오류 메세지가 더 있다는 말씀이신가요? php.ini파일 찾아보니 php error log 는 지정이 안되어있더라구요. 그래서 따로 생성된 파일이 없었습니다 ㅠㅠ
변종원(웅파) / 2019/10/23 14:53:34 / 추천 0

selinux 가 사용됨으로 설정되어 있는지 확인해보시고 파일로 변경후에 에러나는 것을 보니 db연결이 안된고 있는 것 같습니다. 

무언가 설정이 바뀐 것 같네요.

한대승(불의회상) / 2019/10/23 14:58:31 / 추천 0
@K_yPark 아파치 에러에 php 에러가 리포팅되고 있는것 같군요. 일단 DB 오류이니 default DB 설정이 정상적으로 되어 있는지 확인하세요. 세션 드라이버가 DB로 되어 있는 경우 default로 설정된 DB 설정에 따라 세션을 기록합니다. DB 세션을 사용할 경우 세션 테이블이 생성되어 있는지도 확인하세요.
K_yPark / 2019/10/23 15:31:35 / 추천 0

@변종원(웅파)

selinux는 확인해보니 기존에 운영되던 서버는 해제되어있고 새로 만든 aws서버는 활성화 되어있습니다... 구글에 검색해보니 selinux는 보안상 활성화 되어있는게 좋다고 하는데 변경해야할까요??

그리고 DB같은경우에는 계정 정보를 루트 계정으로 접속을 시도하는데 디비상에 계정정보를 확인해보면 루트에 대한 접속 주소가 localhost, % 둘다 지정이 되어있고, 디비 확인 할 때 워크벤치를 이용하는데 워크벤치에서도 루트 계정으로 접속을 합니다.. 이럼에도 CI에서 DB에 접근을 못하는 경우가 발생할 수 있나요??

K_yPark / 2019/10/23 15:33:46 / 추천 0

@한대승(불의회상)

네 말씀해주신대로 동일한이름의 테이블이 실 DB에 생성되어있습니다. (ci_sessions) 로컬로 접속을 하면 해당 테이블에 값이 하나씩 변경이 되고 있구요...

말씀해주셨던거중에 이해가 잘 안되는 부분이 있는데 default DB 설정이라는게 ci 내 database.php 파일에서 지정하는 DB접속정보를 말씀하시는게 맞을까요?

한대승(불의회상) / 2019/10/24 10:39:54 / 추천 0
@K_yPark 네 맞습니다.