Laravel/Vapor

기본 사용법

짱구를왜말려? 2020. 11. 1. 23:41
반응형
SMALL

# aws 계정 생성

IAM -> 사용자명 원하는대로(나는 vapor) & Programmatic access -> AdminstatorAccess 권한 추가 -> 액세스 키 ID랑 비밀 액세스 키 ID 저장해놓기

 

# Lavael vapor 접속해서 AWS account connect하기

 

# 내 laravel 프로젝트에 vapor 세팅하기

composer global require laravel/vapor-cli

 

# 로그인하기

vapor login // 해당 명령어 친 후 vapor 계정정보 입력

 

# vapor 설치(laravel-core 설치하겠냐면 yes -> 초기세팅 어느정도 잡아주는 용도인듯)

(vapor init 쓰면 프로젝트명 물어봄 여기다 steady.com같이 쓰는 뻘짓하지말자 그냥 steady같이 지어야돼 ㅠ .이 그냥 날라감)

vapor init

 

# 배포하기

- 테스트용 서버에 배포하고싶을 때

vapor deploy staging

- 실제 서버에 배포하고싶을 때

vapor deploy production

 

* 배포했더니 에러 나면 vapor.yml에서 일단 COMPOSER_MIRROR_PATH_REPOS=1 삭제

@ vapor.yml

id: 14960
name: steadysamcom
environments:
    production:
        memory: 1024
        cli-memory: 512
        runtime: php-7.4
        build:
            - 'composer install --no-dev'
            - 'php artisan event:cache'
            - 'npm ci && npm run prod && rm -rf node_modules'
    staging:
        memory: 1024
        cli-memory: 512
        runtime: php-7.4
        build:
            - 'composer install'
            - 'php artisan event:cache'
            - 'npm ci && npm run dev && rm -rf node_modules'

* 배포했더니 'rm' is not recognized as an internal or external command, 에러 나면 vapor.yml에서 bulid쪽에 rm -rf를 아래와 같이 바꾸기

 

* s3 PUT error 뜰 때 (403 Forbidden)

-> public 폴더 등 assets로 보관되는 파일들에 특수문자나 한글 들어간 파일명 있으면 지워버려. 이것들 때문에 뜨더라 아오. 이거 정리하고, 배포했던 vapor 프로젝트 지운다음에 다시 배포해야됨. 파일만 지우고 재배포하면 똑같이 403 뜸

 

* ZipArchive::close(): Can't open file: Permission denied in 에러 뜬다면?

- 해당 폴더 전체 권한을 git bash에서 chmod 777 프로젝트명/* 로 권한 바꾸기.

 

@ vapor.yml

id: 14960
name: steadysamcom
environments:
    production:
        memory: 1024
        cli-memory: 512
        runtime: php-7.4
        build:
            - 'composer install --no-dev'
            - 'php artisan event:cache'
            - 'npm ci && npm run prod && rd /s /q node_modules'
    staging:
        memory: 1024
        cli-memory: 512
        runtime: php-7.4
        build:
            - 'composer install'
            - 'php artisan event:cache'
            - 'npm ci && npm run dev && rd /s /q node_modules'

# view단 경로 문제

- img, css, js 등 경로 연결된것들 cdn 때문에 화면 제대로 안뜰거임 아래와 같은 조치 필요

1) {{asset()}} 이런식으로 입력하지 않고 직접 path 입력해준게 있다면 고쳐주기

2) vue나 react로 절대경로 작업한거 미안하지만 상대경로로 바꾸자? 다른 해결법 있다는데 나는 안먹히네?

 

# 도메인 연결

-> Vapor 대시보드의 Domains 탭

-> Add Domain

-> 내가 구매한 도메인명 입력(aws, vapor, 가비아 등 어디서 구매했던 상관없음)

-> 타사에서 구매했다면 Vapor Nameservers로 네임서버 변경

-> vapor.yml에 domain 입력

-> 배포하기 vapor deploy production

(ADD DOMAIN에 도메인 입력하고나서 한 3~5분정도 기다리면 알아서 DNS Records 연결해놓음)

 

* staging용 서버는 staging.steady.com처럼 서브도메인 넣어서 사용하고 싶은데 어떻게 할가?

- varpor.yml에 domain 명시한 후 vapor deploy staging 하기

 

* AWS requires a certificate in the "us-east-1" region, regardless of your project region. You do not have an issued certificate for the [lalatok.com] domain in that region. 에러 뜨면 대시보드 Damains탭에서 해당 도메인 "Request Certificate" > "US East" 클릭

 

@ vapor.yml

id: 14960
name: steadysamcom
environments:
	domain: steadysam.com
    production:
        memory: 1024
        cli-memory: 512
        runtime: php-7.4
        build:
            - 'composer install --no-dev'
            - 'php artisan event:cache'
            - 'npm ci && npm run prod && rm -rf node_modules'
    staging:
        domain: staging.steadysam.com
        memory: 1024
        cli-memory: 512
        runtime: php-7.4
        build:
            - 'composer install'
            - 'php artisan event:cache'
            - 'npm ci && npm run dev && rm -rf node_modules'

 

# Database 생성

- 대시보드 Databases 탭에서 생성 후 그 때 나오는 Username, Password 잘 저장해놔야됨.

- vapor.yml에 database 명시하고 deploy하기. (단, 데이터베이스 만들어지는데 시간이 좀 걸림. 세팅 완료되기 전에 deploy하면 실패할거임. 대시보드에 Provisioning이라고 뜨고 있으면 아직 진행중인거)

 

- vapor.yml에 deploy hook 넣기(php artisan migrate)

 

@ vapor.yml

id: 14960
name: steadysamcom
environments:
    production:
        memory: 1024
        cli-memory: 512
        database: steadysam
        runtime: php-7.4
        build:
            - 'composer install --no-dev'
            - 'php artisan event:cache'
            - 'npm ci && npm run prod && rm -rf node_modules'
        deploy:
        	- 'php artisan migrate --force'
    staging:
        memory: 1024
        cli-memory: 512
        database: steadysam
        runtime: php-7.4
        build:
            - 'composer install'
            - 'php artisan event:cache'
            - 'npm ci && npm run dev && rm -rf node_modules'
        domain: staging.steadysam.com
        deploy:
        	- 'php artisan migrate --force'

# .env 설정

.env 설정 후 vapor deploy production까지 해야 설정 변경이 적용되는듯함.

LIST