코드이그나이터4 호스팅 배포하기 - 2 - 웹 호스팅에 올려보기

고은연·2021년 11월 1일
0

웹 호스팅에서 확인하기

필요한 조건

당장 gcp나 aws등 클라우드 서비스를 이용해서 멋지게 배포하고 싶겠지만 백만년은 이르다! 잠시만 참아주세요. 지금은 그저 ftp를 이용해서 파일을 업로드하는 것으로 충분합니다.
간단한 웹 호스팅을 하기 위해 우리는 웹 호스팅 업체를 골라야 합니다. 고르는 요령은 아래와 같습니다.

  • php 7.2 이상을 지원할 것
  • documentRoot와 같은 레벨에서 파일 업로드가 가능할 것
  • mbstring, intl 익스텐션이 활성화되어 있을 것

첫번째 이유는 코드이그나이터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를 클릭 후 아래와 같이 정보를 입력합니다.

  • 프로토콜 : FTP
  • 호스트 : 닷홈에서 보여지는 도메인
  • 암호화 : 평문 FTP만 사용
  • 로그인 유형 : 일반
  • 사용자 : 닷홈에서 FTP 아이디
  • 비밀번호 : 신청시 등록한 비밀번호. 잘 모르면 FTP 암호 변경에서 바꿀 수 있습니다.

연결을 클릭합니다.

로컬 파일 호스팅 서버로 전송하기

접속되면 아래와 같은 파일질라 화면이 보입니다.

왼쪽 패널은 로컬 컴퓨터, 오른쪽 패널은 서버입니다.
왼쪽 패널은 프로젝트 루트, 오른쪽 패널은 /로 맞춰둡니다.
왼쪽 아래 패널을 클릭 후 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)을 클릭하면 들어갈 수 있습니다.

성공이에요 :)

profile
중년 아저씨. 10 + n년차 백엔드 개발자. 스타트업과 창업, 솔로프리너와 1인 기업에 관심 많아요.

0개의 댓글