제목 | Unable to locate the specified class: Session.php | ||
---|---|---|---|
글쓴이 | pwrlove | 작성시각 | 2015/09/14 12:05:12 |
|
|||
2.2 에서 3.0.1 로 업그레이드 했는데, Unable to locate the specified class: Session.php 메시지만 나오고 페이지 이동이 안됩니다. 구글링에도 많이 저 오류가 나오던데, Stack Overflow에 있는 내용대로 해 봐도 안됩니다. ㅠㅠ 혹시 같은 오류 겪으시분들 있으신가요? 2.2에서는 전혀 오류가 없습니다. |
|||
다음글 | js에서 컨트롤안에 함수 호출하는 방법.. (1) | ||
이전글 | 이메일 전송 실패가 되는데, 원인을 알 수 있을까요? (4) | ||
한대승(불의회상)
/
2015/09/14 13:03:39 /
추천
0
|
pwrlove
/
2015/09/14 13:18:26 /
추천
0
아, 답변 주셔서 감사합니다.
저도 마이그레이션 내역에 그게 있어서 바꿔 봤는데, 동일한 오류가 계속 납니다. ㅠㅠ |
한대승(불의회상)
/
2015/09/14 14:00:41 /
추천
0
에러 메시지만 볼때 Session.php 파일을 로드 하지 못해 발생한 것으로 보이는데요.
CI 버젼과 system 폴더 위치를 확인해 보세요. var_dump(CI_VERSION); var_dump(realpath(BASEPATH)); |
pwrlove
/
2015/09/14 14:36:14 /
추천
0
알려주신대로 찍은 로그 입니다.
경로는 제가 보기엔 별 이상이 없는것으로 보입니다. 세션 파일을 로드하지 못할 이유를 마땅히 알 수가 없습니다. string(5) "3.0.1" string(44) "C:\Project\Test\www\CodeIgniter-3.0.1\system" 세션 클래스는 아래의 경로에 있습니다. C:\Project\Test\www\CodeIgniter-3.0.1\system\libraries\Session\Session.php 아래와 같이 설정되어 있습니다. //---------------------------------------------------- <autoload.php> $autoload['libraries'] = array( 'database' ); $autoload['drivers'] = array( 'Session' ); //---------------------------------------------------- <config.php> $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = TRUE; $config['sess_use_database'] = FALSE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300; $config['encryption_key'] = 'cTC0nn7w08YDll11i8Q5v1Z396411PfF'; |
pwrlove
/
2015/09/14 14:59:15 /
추천
0
로그인이 정상적으로 되는 것을 봐서는
세션이 로드되지 않은 것 같지는 않는데, 로그인 이후, 메인 페이지에서 메뉴를 선택해 다른 페이지를 이동할 경우, 저 메시지가 나옵니다. |
한대승(불의회상)
/
2015/09/14 15:04:52 /
추천
0
3.0 부터는 config.php에 "session_driver" 라는 항목이 추가 되었습니다.
아래 설정을 확인 하거나 CI 3.0.1을 다운 받아 config/config.php 파일 확인하여 보세요. $config['sess_driver'] = 'files'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = NULL; $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 300; $config['sess_regenerate_destroy'] = FALSE; |
pwrlove
/
2015/09/14 15:31:49 /
추천
0
관심가져 주시고, 답변 주셔서 너무 감사합니다.
제가 설정을 바꿔보는 과정에서 잠시 빠졌던것 같습니다. 'database', 'file' 도 모두 해 봤습니다. 지금은 아래와 같이 설정되어 있고, 오류도 여전히 발생됩니다. $config['sess_driver'] = 'database'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = TRUE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300; 다른쪽의 오류를 좀 더 찾아 보겠습니다. |
IamMonk
/
2015/09/14 21:25:19 /
추천
0
혹시 autoload에 있는 Session의 앞머리 S가 대문자여서 그런건 아닌가 하는 바보같은 의견을 조심스럽게 던져봅니다.
|
pwrlove
/
2015/09/15 09:31:19 /
추천
0
IamMonk님 안녕하세요?
합리적인 의심이라고 생각합니다. 저 역시도 그렇게 판단했고, 바꿔 봤었는데 별 영향이 없는것 같더라구요. 제가 어떤 문제를 만나면 Stack Overflow를 검색해 보는데, 거기도 동일한 답변이 있었습니다. 한국엔 Stack Overflow같은 싸이트가 없어서 아쉽지만, 적어도 여기서 코드이그나이터에 대해선 작은것이라도 정보를 공유할 수 있다면 좋을 것 같습니다. 다시한번 감사드리고, 이 문제가 뭔지 꼭 해결해서 답을 올리도록 하겠습니다. 지금은 우선 만들고 있는게, 2.2버전에서는 별 문제 없이 잘 되고 있어서 진도 부터 나가고 추후 3.x에 다시 한번 시도를 해 볼 예정입니다. 생각해 보면 별문제 아닐것 같다는 희망도 생깁니다. |
pwrlove
/
2015/09/15 09:59:09 /
추천
0
|
pwrlove
/
2015/09/15 13:04:17 /
추천
0
혹시 PHP 버전과 상관이 있을까요?
5.3.21 인데 영향이 있을까요? |
한대승(불의회상)
/
2015/09/15 13:28:25 /
추천
0
@pwrlove 그럴수도 있고 아닐수도 있습니다.
현재 주어지는 정보만으로는 더 이상 조언 드리기가 힘들것 같네요. |
변종원(웅파)
/
2015/09/15 14:54:16 /
추천
0
|
pwrlove
/
2015/09/15 16:14:27 /
추천
0
네, 저도 저 내용을 봐서 늘 맘에 걸렸는데,
당장은 PHP 버전을 바꾸기 쉽지가 않아서, 혹시 바꾸게되면 확인해 보고 결과를 다시 올리겠습니다. 감사합니다. |
प्यार
/
2017/02/06 14:41:52 /
추천
0
저도 라이프러리에서 안되는 경우였는데 라이브러리가 컨트롤러를 상속받아 안되는 경우였습니다. get_instance()가 controller를 잘못 받아와서 생기는 문제더라구요. 상속받은 클래스를 다시 살펴보세요. |
컨트롤러/모델에서 사용하시에는 변화가 없지만 autoload.php에 등록시 library 가 아니라 driver 에 등록해 줘야 사용이 가능 합니다.