Codeigniter 4.
회사에서 새로운 프로젝트를 진행할 기회가 생겼습니다. 입사 후 기존 웹 페이지는 Codeigniter 3 를 사용하고 있었기 때문에, 호기심 반 기대 반으로 Codeigniter 4를 사용하기로 결정합니다.
가장 먼저 해야할 개발서버 셋팅. 이 문서는 개발서버에 Codeigniger 4를 올리면서 겪은 삽질(?)을 기록하기 위해 만들었습니다.
Apache2, php 7버전은 미리 설치해두었기 때문에, Codeigniter 4(이하 CI4) 프레임워크 파일을 다운로드 받습니다.
https://codeigniter.com/download
위 URL로 접속해서 CI4 Download를 클릭해서 프레임워크 파일을 다운로드 합니다. 기본적으로 PHP 7.3 버젼 이상이 필요하다고 하네요.
알집을 해제하면 위 화면과 같은 파일들을 확인할 수 있습니다. 제가 테스트에 사용한 CI 버젼은 4.1.3 입니다.
이제 다운받은 프로젝트 파일을 Apache2 에 업로드 해줍니다.
저는 테스트를 위해 ci4로 프로젝트명을 변경해서 올렸습니다. 업로드 후 정상적으로 동작하는지 확인하기 위해 localhost(혹은 주소)/public/index.php 로 접속해봅니다.
접속을 하자마자 에러 화면부터 보이네요.
사실 여기서부터가 삽질의 시작이었습니다. 일단 저의 경우는, 폴더의 권한 및 PHP 익스텐션이 설치되지 않아 보이는 에러였습니다. 일단 먼저 프로젝트 파일 내 /writable 폴더의 권한을 변경해줍니다.
sudo chmod -R 777 writable
위 명령어를 통해 writable 폴더의 권한을 변경해줍니다. -R은 writable 폴더의 하위까지 권한을 변경하겠다는 의미고, 777은 모든 사용자에게 읽기/쓰기/실행 권한을 주는것입니다.
두 번째로, 필수 php 익스텐션을 설치해주어야 합니다. 필수 익스텐션으로는 curl, intl, mbstring, xml 4가지입니다. 기존에 운영하던 서버에서는 설치가 되있는 경우도 있을 수 있지만, 저는 처음 서버를 셋팅하기 때문에 하나하나 설치를 해줍니다.
sudo apt-get install php-curl
sudo apt-get install php-intl
sudo apt-get install php-mbstring
sudo apt-get install php-xml
위 명령어들을 하나씩 실행시켜 필요한 익스텐션을 설치합니다.
마지막으로 php.ini 파일에서 crul, intl 익스텐션의 주석을 풀어주어야합니다.
sudo nano /etc/php/7.4/apache2/php.ini
php.ini 파일은 서버의 환경에 따라 위치가 다를 수 있습니다. 위 명령어를 실행시켜 php.ini 파일 수정모드로 접근합니다.
;extension=bz2
extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
extension=intl
;extension=imap
;extension=ldap
;extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
;extension=pdo_mysql
php.ini 파일의 스크롤을 내리다보면 위와 같은 부분이 생기는데, curl과 intl 부분의 앞 ;을 지워주고 Cntl + x를 눌러 저장하고 빠져나옵니다.
모든 설정을 바꾸고 apache를 재시작 해줍니다.
sudo service apache2 restart
다시 위의 url로 접근해보면 정상적으로 출력되는 CI4 초기화면을 볼 수 있습니다.
막상 정리하고 보면 별거 아닌 내용이지만, 막상 개발서버를 처음 셋팅하며 구글링과 삽질(?)을 통해 많은 시간이 소요되었습니다.
운영중인 서버의 SM 위주로 하다보니 개발서버를 직접 셋팅할 기회가 없었는데, 막상 해보니 어렵지만 나름 배우는 재미가 있는 좋은 경험이었네요.
※ 이 글은 주니어 개발자의 삽질의 결과를 저장한 문서입니다. 잘못된 내용이 있을 수 있으니 단순한 참고만 부탁드리며, 댓글로 정확한 내용을 적어주시면 더 많은 분들에게 좋은 정보를 공유하는 좋은 기회가 될 것 입니다!
삽질이여 영원하라!!
'개발자, 탐구생활 > 개발자, 코딩' 카테고리의 다른 글
[js]Google charts.js로 데이터 시각화를 해보자. (0) | 2021.08.08 |
---|---|
[python]openpyxl을 이용해서 excel 파일 만들기 (0) | 2021.07.27 |
[python]파이썬 기초2 - 파이썬 패키지 알아보기 (0) | 2021.07.19 |
[python]파이썬 기초1 - 파이썬 모듈 알아보기 (0) | 2021.07.17 |
[js]data tables.js 사용하기 (0) | 2021.07.06 |