PHP2011. 5. 10. 08:41

현재 일정이 다소 밀려 있지만, 모든걸 우선시 하는 일로 CodeIgniter를 보고 있다.

 

CodeIgniter는 PHP를 객체지향 개념을 접목하여 MVC 패턴으로 웹개발을 해나가는 프레임워크다.

말이 프레임워크라 할 수 있지 실제로는 웹서버 잘 돌고 있는 곳에 압축 풀어 넣고 거기에다가

MVC 패턴에 맞게끔 적절한 공간에 적절한 웹 페이지를 php 형태 또는 html 형태로 작성해 주면 된다.

 

현재 몇가지 버전을 테스트 중인데, 처음에 몇 가지 설정하는 법을 몰라서 많이 헤매이긴 했지만,

일단 주로 쓰는 윈도우 계열 OS(7, XP)에서 문제가 아직은 없고,

현재 최근에 나온 PostgreSQL 9.0.3 버전에 맞추어 나온 Apache, PHP 통합형 인스톨러인

BitNami WAPPStack 1.2.5, 또는 PostgreSQL 9.0.3-2 도 문제 없이 동작하는 것 같다.

 

일단 고생을 한 만큼 그에 따른 두 번 다시 동일한 실수를 미연에 방지하자는 차원에서

문제되던 부분에 대해서 하나 남기려고 한다.

 

제목에서처럼 index.php를 지우려고 한다. 파일을 지우는게 아니라 URL에 중간에 들어가야만 하는데,

저걸 생략할 수 있도록 만든다는 이야기다.

 

국내와 해외에 무수한 답변들이 있지만, 하루 꼬박 찾아 헤맨걸 보면 검색 능력이 부족한가 보다.

 

아무튼 문제는 보통 다음과 같이 일어난다.

 

http://localhost/test/index.php/blog

 

저 한 줄이 의미하는 바는 다음과 같다.

1. localhost이니 현재 작업중인 내 PC의 웹서버에 접속을 하겠다

2. root 폴더가 아니라 작업 폴더는 test 폴더다.

   즉, 아파치 설치에 따라 성격이 바뀌긴 하지만, htdocs 폴더 또는 www 폴더 안의 root 폴더가 아니라 그 위에 새로 만든 test 폴더를 쓴다.

3. CodeIgniter가 test 폴더 안에 깔려 있다는 이야기다. 여기서 사용한 버전은 2.0.1 이다.

4. CodeIgniter의 디폴트 페이지는 welcome이지만 튜토리얼에 보면 blog.php와 blogview.php 파일을 만들라고 한다.

5. 만들어서 테스트 하면 잘 되는가?... 그냥 BitNami WAPPStack 이나 PostgreSQL 로 깔면 잘 안된다. 그래서 수정이 필요하다.

6. 물론 5번 과정이 잘 될 수도 있지만, 지금 중요한건 index.php 안 쓰고 잘 되야 잘 되는거라 할 수 있다는 이야기다.

 

여기서의 문제는 바로 이런 것들이다.

1. mod_rewrite.so 모듈 파일을 httpd.conf 설정에서 주석을 풀어 놓고 모듈을 적재시키는지 여부

2. httpd.conf 설정 안에 AllowOveride 옵션이 None으로 되어 있는 부분을 All로 바꿔준거냐의 여부
   이게 하나만 있는게 아니라 보통 2개가 옵션이 있는데 둘 다 바꿔줘야 편하게 진행된다.

   참고로 이걸 All로 바꿔주지 않으면 향후 .htaccess 파일을 읽지 못하는 문제가 생겨서 제대로 동작하지 않게 된다.

   부가적으로 Directory / 설정란에서 마지막에 Deny from All을 Allow from All로 변경

3. CodeIgniter의 /application/config/config.php 파일에서 base_url을 내 PC의 test 폴더로 등록했는지 여부와

   하단에 있는 index_page 옵션의 index.php 이름을 지워준것인지에 대한 설정 변경

4. database.php 파일에서 DB에 접속하기 위하여 postgres에서 사용할 DB와 접속 정보 등록

5. autoload.php 파일에서 DB 접속을 언제나 자동으로 쉽게 하기 위해서 Library에 추가 항목으로 database를 등록

6. /test 관련 최상위 root 폴더에 .htaccess 파일을 새로 생성하고 안에 내용을 추가하는 작업

 

최소한 이 정도는 설정을 해 줘야지 맘 편하게 작업을 진행함에 애로사항이 생기지 않는다.

 

시간적 여유가 된다면,

PostgreSQL 9.0.3을 지원하는 패키지를 하나 정해서 이것을 설치하고,

일단 DB를 간단하게 활용하기 위해서 사용자를 임의로 추가하고,

간단히 DB를 하나 테스트용으로 만들어 두고 나서,

CodeIgniter를 이용할 수 있는 환경을 세팅하는 방법을 쭈욱 설명하고 나서,

간단한 예제들을 튜토리얼을 기준으로 진행하면 재미있을것 같긴한데...

일단 하는 방법은 머리에 있긴 한데... 이걸 만들고 꾸미고 하기에는 시간이 역부족인것 같다.

이미 codeigniter-kr.org 홈페이지가 잘 만들어져 있기 때문에 찾아서 하면 되기는 한데,

국내에 이를 활용하는 동영상이 다소 아쉽고...

네이버 같은데서 뭣좀 검색하면... 검색 결과 4~5개 뜨고 답 없고... 구글 가지 않으면 정말 답이 안 나온다.

 

간단히 홈페이지 틀을 하나 가져와서 CodeIgniter의 MVC 패턴에 맞추어 간단한 웹페이지 하나 만들고,

여기에 몇가지 리소스 얹어 가는거(JQGrid, HighChart) 찾아가면 재미 있을거 같은데... 포스팅 가능할까. ㅋ

 

별로 저변이라 해야 하나... 아는 사람도 희박하고 애매한데, 나중에 그리고 있는 DB 운용 차원에서 보면 MySQL보다는

비용적 차원이나 운용에 따른 질적 문제에서도 훨씬 득이 있지 않을까 생각하는데... 정보가 정말 희박하다. ㅋ

 

일단 어제 오늘 CodeIgniter의 튜토리얼 봤는데, 이제 슬슬 안쪽을 건들여 봐야겠다.

처음에는 MVC 따위... 아우 귀찮어... 몰라 이랬는데...... 참... 이게 괜찮구나 라는 생각이 보다 보니 자꾸 드는데,

실제로 만들면서 느끼는건 얼마나 더 굉장할지 궁금해진다.

 

근데, 제목과는 달리 결론이 없넹.

 

흠... 결론은 index.php를 안 뛰우는 방법이 튜토리얼에 잘 설명되어 있지만,

그냥 진행하다가 안되면, 보통 2가지 문제라는 것이다.

첫번째가 httpd.conf 아파치 설정 파일에 mod_rewrite 설정이 주석처리 되어 있거나

AllowOveride 옵션들이 None으로 되어 있는걸 All로 바꿔야 한다는 것.

그 외에는 튜토리얼 잘 따라가면 된다.

Posted by 아이맥스