[CodeIgniter 4 pre-alpha1 사용기] CodeIgniter 4 설치. 제작이야기 | Posted on 2017. 10. 4. 21:18
음음..
부트스트랩 4도 슬슬 정식버전이 나오겠다.
(XE도 3버전이 올해안에 나온다는거 같고..)
코드이그나이터도 4버전이 슬슬 정식 버전이 나오거나, 마지막 테스트 시점이 아닐까 생각되어 코드이그나이터 4 알파1 버전으로 사이트를 만들어 보고 있습니다.
(즉, 추후 정식 버전과는 차이가 있을 수 있습니다.)
만들면서 코드이그나이터 3와는 다른점이나 참고할점을 기록합니다.
(강의 이야기가 아닌 이유는, 필자도 맨땅에 헤딩하면서 만드는 제작기라..)
2017년 10월 01일날 CodeIgniter4 깃허브에서 다운로드 받은 파일을 기준으로 작성됩니다.
일단 코드이그나이터 4 깃허브 ( https://github.com/bcit-ci/CodeIgniter4 ) 에서 파일을 다운받습니다.
아직 정규 릴리스가 없기 때문에, 직접 다운로드를 받습니다.
저는 Download ZIP으로 다운로드를 받았습니다.
개인적으로 최근에 핫하다는 라라벨이 아닌, 코드이그나이터를 쓰는 이유는..
개인적으로 콤퍼저는 아직 시기상조라고 보고 있고..
(실제로 한국의 대다수 사이트는 웹호스팅으로 구성되어있는데, 웹호스팅이 컴포저를 지원해줄리가.. 지원해주려면 빨라도 내년 중순이 되어야.. XE가 라라벨을 선택하면서 컴포저를 웹호스팅단계에서 지원해줄지 문제..)
코드이그나이터4도 컴포저를 지원하고, 도큐멘트가 컴포저 기준이긴한데..
도큐멘트를 읽어보면 꼭 컴포저를 쓰지 않아도 사용할 수 있다고 판단해서, 코드이그나이터 4를 선택했습니다.
(기존에 쓰던게 코드이그나이터라서 라는 이유는 절대 아님..)
다운받으면 여러가지 파일이 나오는데..
그것을 서버에 올려줍니다.
필요없는 폴더는 "user_guide_src" 입니다.
(아마도???)
그냥 아무생각 없이 올리고 접속을 하게되면, 위와 같은 화면이 등장하게 됩니다.
그 이유는 코드이그나이터4는 중요 파일(core나 app의 파일들)을 Root보다 한단계 위에 위치하는 구조로 되어있는거 같습니다.
과거 코드이그나이터2나 3에서도 보안상의 이유로 Root보다 한단계위에 위치해서 사용을 하던 분들이 많이 있었죠.
그거를 고려한거 같습니다.
즉, URL로는 어떤 방법으로도 코드이그나이터4의 코어등에 접근이 불가능하게 됩니다.
(해킹파일을 심어서 본다면 가능하겠지만..)
그렇기에 코드이그나이터 2, 3에서는 assets폴더를 만들어 사용하던거는 전부 public로 이동합니다.
파일 업로드와 세션, 캐시등은 writable 폴더가 전담.
(솔직히 캐시랑 세션등을 application에 위치하는게 불안하긴 했..)
일단 코드이그나이터4를 사용하기 위해서 작업을 해봅니다.
.htaccess 파일을 사용해서 public 폴더나, Root상에있는 rewrite.php를 읽어서 이동하게 만듭니다.
필자는 .htaccess 가 아닌 public 폴더를 Root가 되도록 조치했습니다.
(.htaccess로는 하는 방법을 잘 모르겠어서, 그냥 내 서버에서 하는거니 그냥 Root 폴더를 변경한..)
그래서 Root를 변경하면 맨위의 이미지처럼 코드이그나이터4가 보이게 됩니다.
CodeIgniter 4
├ application 기존 코드이그나이터의 2, 3버전과 동일합니다. 이곳에서만 파일을 수정하거나 만들면 되는..
├ public URL로 접근이 가능해야 하는 파일들이 위치합니다. 2, 3버전의 assets 폴더안에 들어갔던 파일들도 public에 위치합니다.
├ system 코드이그나이터4 Core 입니다. 2, 3버전과 동일하게 이쪽 부분만 업데이트 해주면 되는 구조 같네요.
├ tests 일단 도큐멘트나 코드를 분석해보면 뭔가 의미가 있는거 같은데, 정확히 어떤 부분에서 쓰는지는 모르겠네요.
├ user_guide_src 2, 3버전과 동일하게 도큐멘트 파일들입니다.
├ writable 캐시, 세션, 파일업로드 등을 하는 폴더입니다.
├ index.html 코드이그나이터4가 정상적인 설치가 되지 못하였다고 표현해주는 파일입니다.
└ rewrite.php public/index.php 를 읽어주는 파일입니다. 해당 파일을 index.php로 바꿔주면 동작하지는 않더군요.
현재 파악한걸로는 위와 같습니다.
※ 2017년 10월 01일 기준으로 코드이그나이터 4는 PHP버전 7.0.15 +이어야 합니다.
(라라벨도 동일하게 PHP버전 7이상인걸로..)