본문 바로가기

Dev/PHP

[PHP] Ubuntu - Laravel 프로젝트 Heroku에 배포하기(DB 없음)

 

 

 

본 포스팅에서는 Laravel 프로젝트를 Heroku에 배포하는 방법에 대해 알아보겠습니다.

본 포스팅은 Ubuntu Linux 사용자를 기준으로 하며, DB를 사용하지 않는 Laravel 프로젝트가 이미 준비되어있다는 것을 전제로 하고 있습니다.

(DB를 연동한 Laravel 프로젝트 배포는 차후 다뤄보도록 하겠습니다.)

 

 

Heroku는 PaaS (Platform as a Service) 클라우드 플랫폼입니다.

PaaS는 사용자가 개발하는 애플리케이션을 제외한 서버, 프레임워크, OS 등 모든 부분을 클라우드 상에서 제공해 주는 방식의 서비스를 의미합니다.

 

Heroku에 개인이 개발한 애플리케이션을 업로드하면 프로젝트의 언어, 프레임워크 정보를 알아서 인식, 빌드해서 서비스 배포까지 자동으로 해주는 편리한 플랫폼으로, 다양한 언어를 지원합니다.

 

Heroku에서 지원하는 언어

 

Heroku는 서비스 등록이 간편하고 무료로 이용할 수 있어서 개인 및 소규모의 프로젝트에게 적합한 플랫폼이 아닐까 싶습니다.

 

Heroku는 무료로 사용이 가능하지만 유료 패키지도 존재합니다.

 

https://www.heroku.com/pricing

 

단, 무료 패키지는 일정 시간 등록된 애플리케이션에 접속이 없을 경우, 프로젝트를 Sleep 상태로 돌려버립니다.

Sleep 상태에 있다고 해서 접속이 불가능한 것은 아니고, 서버를 깨우는 과정이 필요하기 때문에 최초 접속 시에는 다소 시간이 걸린다는 불편함이 있습니다.

하지만 대부분의 것들은 Heroku가 알아서 다 처리해 주고 또, 개인이 개발한 애플리케이션을 웹상에 배포해 제삼자가 접속할 수 있게끔 해주기 때문에 이 정도의 불편함은 충분히 감수할만하지 않을까 싶습니다.

 

1. Heroku 가입 & 애플리케이션 생성

먼저, Heroku에 계정이 없다면 아래의 링크를 통해 Heroku에 가입 후 로그인해줍니다.

id.heroku.com/login

 

Heroku | Login

 

id.heroku.com

 

로그인하면 우측 상단의 아이콘, Dashboard 순으로 클릭합니다.

 

그러면 위와 같은 화면이 뜨는데, Create new app 버튼으로 새 애플리케이션을 생성해주겠습니다.

 

적당한 이름을 붙여주고 Create app 버튼을 누릅니다.

 

이것으로 애플리케이션이 생성되었습니다.

 

2. Ubuntu Linux에 Heroku CLI 설치 및 로그인

Heroku에 배포하려면 Heroku CLI가 설치되어있어야 합니다.

터미널을 열고 아래의 명령어로 Heroku CLI를 설치합니다.

$ sudo snap install --classic heroku

 

이제, 프로젝트 배포를 위해 CLI를 통해 heroku에 로그인해야 합니다.

아무 문자나 넣으면 (q 제외) 브라우저를 통해 로그인 화면을 띄워줍니다.

로그인 절차를 마치면 앱 배포 준비가 완료된 것입니다.

 

3. 프로젝트 배포

프로젝트 배포는 git 명령어를 통해 이루어집니다.

만약 git 패키지가 설치되어 있지 않다면 아래의 명령어로 설치해줍니다.

$ sudo apt-get install git

 

배포할 프로젝트로 디렉터리를 이동합니다.

$ cd your-project/

 

Heroku에서는 PHP 프로젝트를 실행할 서버를 apache2, nginx 중에서 고를 수 있습니다.

따라서 apache2나 nginx 서버에서 이 프로젝트가 구동되어야 한다는 설정 정보를 추가해 주어야 합니다.

터미널에서 아래의 명령어를 입력합니다.

$ touch Procfile
$ vim Procfile

#[아래 내용 입력]
web: vendor/bin/heroku-php-apache2 public/

or

web: vendor/bin/heroku-php-nginx public/

 

IDE에서 작성해도 무방합니다.

 

이제 git 저장소 생성 후, 리모트 경로를 Heroku에서 만든 앱으로 지정하고 push 합니다.

$ git init
$ git add .
$ git commit -m 'new laravel project'


# 브라우저에서 생성한 heroku app으로 리모트 경로를 지정하고 push
$ heroku git:remote -a your-app
$ git push heroku master

 

git push heroku master

 

이게 끝입니다.

 

별다른 절차 없이 순식간에 프로젝트가 배포되었습니다.

정말로 배포가 되었는지 확인하기 위해 heroku 홈페이지에서 생성한 앱 페이지로 이동합니다.

 

Overview 탭에서 우측에 Deployed라는 로그가 있으면 배포가 된 것입니다.

 

화면 우측 상단에 Open app 버튼을 눌러 웹 페이지로 이동합니다.

 

 

정상적으로 웹 애플리케이션이 배포된 것을 확인할 수 있습니다.

참고로 Heroku에서 발급해준 이 주소는 인터넷이 연결되어있는 환경이라면 어디에서나 접속할 수 있습니다.

 

이것으로 Laravel 프로젝트 Heroku에 배포하기(DB 없음) 포스팅을 마치겠습니다.