당장 gcp나 aws등 클라우드 서비스를 이용해서 멋지게 배포하고 싶겠지만 백만년은 이르다! 잠시만 참아주세요. 지금은 그저 ftp를 이용해서 파일을 업로드하는 것으로 충분합니다.
간단한 웹 호스팅을 하기 위해 우리는 웹 호스팅 업체를 골라야 합니다. 고르는 요령은 아래와 같습니다.
첫번째 이유는 코드이그나이터4가 PHP 7.2 버전 이상에서 동작하기 때문입니다.
두번째 이유는 의외로 중요한데, 의외로 많은 공유 웹 호스팅이 ftp를 통해 파일을 올릴 때 /public
, /html
혹은 /www
디렉토리 아래에만 파일을 업로드할 수 있게 권한을 줍니다.
물론 이런 환경에서도 코드이그나이터의 배포는 가능합니다만 이렇게 되면 코드이그나이터4의 코드가 웹서버를 통해 직접적으로 접근이 가능해지므로 추천하지는 않습니다.
세번째 이유도 코드이그나이터4의 필수 조건이기 때문입니다. 웹 호스팅이 익스텐션을 제공하는지 확인하려면 a.) 웹호스팅 업체에 문의하시거나 b.) 일단 웹 호스팅을 신청하신 후 PHP 코드에서 아래처럼 확인해 보시면 됩니다.
echo extension_loaded("intl") ? "intl loaded" : "intl is not init";
echo extension_loaded("mbstring") ? "mbstring loaded" : "mbstring is not init";
위 세개의 조건을 충족한다면, 나머지는 서버의 속도나 업체의 안정성 등을 중심으로 고르면 됩니다. 사실 어느정도 규모가 커지면 운영 환경의 사이트는 독립 서버로 관리하는 편이 나으므로 성장 과정에 잠시 거쳐가는 것이라고 이해해 주세요.
일단은 예시를 위해 닷홈의 무료 서비스를 이용해 보겠습니다.
일단은 예시를 위해 닷홈의 무료 서비스를 이용해 보겠습니다.
닷홈 에서 웹호스팅 -> 무료 호스팅을 선택합니다.
신청하기 버튼을 클릭합니다.
무료 호스팅 신청하기를 클릭합니다.
호스팅 정보를 입력합니다.
이메일 인증을 받은 후 신청하기를 클릭하면 신청이 완료됩니다.
닷홈의 FTP 정보는 마이 닷홈 -> 호스팅 관리 -> 웹호스팅 목록에서 방금 신청한 무료 호스팅의 상세보기를 클릭합니다.
상세 페이지로 이동하면 FTP 및 DB 정보를 확인할 수 있습니다.
FTP를 통해서 파일을 서버로 전송할 예정이므로 로컬에 있는 파일을 원격에 있는 서버로 업로드할 수 있는 파일질라 - https://filezilla-project.org/를 다운로드합니다.
FTP는 File Transper Protocol의 약자로 단순한 파일 전송 프로토콜입니다. 여러 컴퓨터간 파일을 전달하는 가장 쉬운 방법 중 하나입니다.
Download FileZilla Client 클릭 후 가장 왼쪽의 FileZilla 아래 Download를 클릭합니다.
파일질라 설치 후 사이트 관리자를 클릭합니다.
사이트 관리자에서 New site를 클릭 후 아래와 같이 정보를 입력합니다.
연결을 클릭합니다.
접속되면 아래와 같은 파일질라 화면이 보입니다.
왼쪽 패널은 로컬 컴퓨터, 오른쪽 패널은 서버입니다.
왼쪽 패널은 프로젝트 루트, 오른쪽 패널은 /
로 맞춰둡니다.
왼쪽 아래 패널을 클릭 후 ctrl + A
로 모든 파일을 선택하고 엔터키를 클릭합니다. 모든 파일이 서버로 전송됩니다.
전송이 완료되면 서버에 모든 파일이 업로드되어 있습니다.
코드이그나이터의 웹 루트는 /public
으로 설정되어 있습니다. 하지만 닷홈의 경우 웹 루트가 /html
이죠. 따라서 기존의 /html
디렉토리 이름을 바꿔두고 /public
디렉토리를 /html
디렉토리로 이름을 변경하겠습니다.
즉 /html
-> /html_
, /public
-> /html
로 이름을 변경합니다.
오른쪽 아래 서버 패널에서 html
디렉토리를 우클릭 후 이름 바꾸기를 클릭하고 html_
로 이름을 바꿉니다.
같은 방법으로 public
디렉토리를 html
로 이름을 변경합니다. 최종 디렉토리 모습은 아래와 같습니다.
.env
환경 설정 맞추기로컬에 맞춰진 .env
파일의 내용을 닷홈에 설정한 규칙에 맞게 바꿔보겠습니다. .env
파일을 복사해서 .env.dothome
으로 이름을 바꾸고 내용을 편집합니다.
먼저 URL을 변경합니다. 닷홈 호스팅 상세에서 기본 제공 도메인 항목을 보면 됩니다.
.env.dothome
app.baseURL = 'http://닷홈URL'
데이터베이스 접속 정보를 변경합니다. 닷홈 호스팅 상세에서 DB 정보 항목에 있습니다.
database.default.hostname = localhost
database.default.database = 닷홈DB명
database.default.username = 닷홈DB 아이디
database.default.password = 닷홈DB 비밀번호
database.default.DBDriver = MySQLi
.env.dothome
파일을 서버로 전송합니다. 서버에는 .env
파일과 .env.dothome
파일 두 개가 있어야 합니다.
기존의 .env
파일을 삭제하고, .env.dothome
파일 이름을 .env
로 변경합니다. 이제 파일은 .env
하나만 남아있습니다.
웹 호스팅은 ssh로 원격 서버에 접근을 할 수 없습니다. (유료 호스팅은 일부 가능합니다만, 권한은 제한적입니다.)
코드이그나이터 4의 마이그레이션은 원격 서버 터미널에서 실행되어야 하므로 웹에서 실행되는 코드를 작성하지 않는 한 직접 사용은 불가능합니다.
마이그레이션을 사용할 수 없기 때문에 직접 데이터베이스 테이블을 만들겠습니다.
로컬의 PHPMyAdmin - http://localhost/phpmyadmin을 실행합니다.
ci4
데이터베이스를 왼쪽 패널에서 선택 후 내보내기 탭을 클릭합니다.
기본값으로 두고 실행 버튼을 클릭합니다.
sql 파일이 다운로드됩니다.
이번엔 닷홈 상세 페이지로 이동합니다.
닷홈 호스팅 상세 페이지에 제공 내역 란을 보면 MySQL 관리(UTF-8) 항목이 있습니다. 클릭하면 "호스팅의 PHPMYADMIN"이 열립니다.
가져오기 탭에서 다운로드한 sql 파일을 업로드하고 실행을 클릭합니다.
로컬에 있는 테이블을 모두 가져왔습니다.
웹호스팅 사이트로 접속해 봅니다.
닷홈 기준으로 도메인 정보 -> 기본 제공 도메인 (*.dothome.co.kr)을 클릭하면 들어갈 수 있습니다.
성공이에요 :)