-
기본 사용법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'Laravel > Vapor' 카테고리의 다른 글
가격은 얼마나 나올가? (0) 2020.10.15 Vapor는 어떤 서비스지? (0) 2020.10.15