CI 묻고 답하기

제목 HMVC modules 경로 문제
카테고리 일반
글쓴이 djee 작성시각 2018/01/29 13:59:26
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 1426   RSS

안녕하세요.

처음 CI 시작시 많은 도움을 받아 항상 고맙게 생각하고 있습니다.

 

이번에 프론트,관리자를 하나의 ci에서 구현해보고자 HMVC를 구글링해서 심플한 버전으로 로컬작업을 진행했습니다.

별 문제없이 잘 진행하여 라이브 서버에 올리니 아래와 같은 오류가 나네요..

 

Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.

 

위 내용으로 구글링하면 모듈 경로에 관한 답변이 몇개 나오는데 제가 설정한 것과 별반 다른게없고

여러가지 시도를 해 봐도 해결이 안되어 참 답답하네요.. 사이트 오픈을 곧 해야하는데 말이죠..

 

그래서 core 부분을 보니 위 애러가 CodeIgniter.php 에서 내는 것을 확인했는데 추측컨데 아래 모듈 경로가 문제는 맞는듯합니다.

로컬에서 모듈 경로를 찍어보면

application/controllers/../front_modules/main/controllers/main.php

이렇게 나오고 실제 경로는

application/controllers/front_modules/main/controllers/main.php 입니다.

경로를 잘못 기재했네요. 아래와같이 정정합니다.

application/front_modules/main/controllers/main.php

 

front_modules 앞에 ../ 이 부분이 로컬 서버(autoset8)에서는 정상적으로 수행이 되는데

라이브서버는 저 경로를 인식을 못하는 것 같습니다. 실제 경로를 찍어보면 같고 해당 위치에 파일도 있구요.

 

아마 아파치서버나 php 환경이 달라 생기는 문제일듯 한데,

웹서버나 php  설정은 아주 기초적인것 밖에 모르다보니 해결을 못하고 있네요...

 

ci 버전은 2.2.6 버전이고,

php 버전은 로컬 5.5.3, 라이브 5.5.38 버전 

라이브 서버는 레드햇 리눅스 7.4, 아파치 2.4.27 입니다.

 

고수님들의 의견부탁드립니다.

고맙습니다.

 

 

 다음글 controllers 나 models 에서 php가 아... (3)
 이전글 폼안에서 이미지를 업로드하는 방법 (1)

댓글

변종원(웅파) / 2018/01/29 16:05:13 / 추천 0

hmvc 의 모듈 디렉토리 위치가 다른 것 같네요. 보통은 aplication과 동일한 위치에 있습니다.

대소문자도 체크해보시고 순정상태의 경로가 맞는지도 확인해보세요.

djee / 2018/01/29 16:28:58 / 추천 0

답변 감사합니다.

HMVC가 조금씩 변경된 여러가지 버전이 있는가봅니다.

제가 쓴건 아래와 같은 구조를 가지고 있습니다.

 

project
| admin
| application
| | config
| | | config.php
| | | routes.php
| | front_modules
| | | login
| | | | models
| | | | | ...
| | | | views
| | | | | ...
| | | | controllers
| | | | | login.php
| | back_modules
|.htaccess

 

root의 index.php에는 모듈 경로가 아래와 같이 되어있습니다.

$assign_to_config['modules_locations'] = array(
    APPPATH.'front_modules/' => '../front_modules/',
  );

 

위 경로를 테스트서버에서는 잘 수행되는데 라이브 서버에서는 인식이 안되는것 같습니다.

경로를 바꿔줘봐도 안되네요....

가져다 쓴 원본 소스로도 같은 결과가 나오구요...

kaido / 2018/01/29 17:36:24 / 추천 0

안녕하세요 ㅎㅎ 

설정이 엄하게 어려운 버전을 선택하신것 같습니다. 

http://cikorea.net/bbs/view/lecture?idx=17433&page=1&view_category=&lists_style=

한번 참고해 보시면 좋을것 같습니다.

[어차피 HMVC 구조이면 모듈 소스만 복붙 하면 될거라 생각됩니다.]

 

APPPATH  의 의미는 CI가 자체적으로 설정한 path 상수 입니다.

path /appliction/ 을 지칭합니다. 

[만일 C:\product\ 여기가 web root 이면  C:\product\application\ 이 됨]

 

설명 예제대로이라면

// $assign_to_config['name_of_config_item'] = 'value of config item';

이런 형태이라서  value 값을 설정 하고자 한다면 

 '../front_modules/' 대신   APPPATH.'front_modules/'

이렇게 하는게 아닌지 생각듭니다.

 

해당 설정은 개인 커스텀 환경 설정이라서 해당 HMVC 모듈을 보지 않는이상 정확한 대답은 어렵습니다만, 단순히 보기에는 이렇습니다.

 

djee / 2018/01/29 18:11:21 / 추천 0

답변 감사합니다.

우선 알려주신 hmvc로 다시 진행해 봐야겠네요..