ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 기본 사용법
    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

    댓글

Designed by Tistory.