Amazon Lightsail에 Laravel 애플리케이션 배포

Amazon Lightsail에 모든 애플리케이션을 배포하기 위한 초보자 친화적인 단계별 가이드입니다. 이 기사는 Laravel 앱을 시연하지만 아이디어는 모든 종류의 애플리케이션에 대해 동일합니다.

소개



Amazon Lightsail은 AWS에서 제공하는 고정 월별 VPS 서비스입니다. 선택한 OS를 설치하면 거의 모든 애플리케이션을 실행할 수 있습니다. 이 애플리케이션에서는 내가 가장 좋아하는 백엔드 프레임워크 중 하나인 Laravel을 배포하는 방법을 보여줍니다. 여러분 대부분이 들어보셨을 것입니다. 배포해 보겠습니다.

저는 Laravel을 좋아하지 않습니다/알지 못합니다



Laravel을 좋아하지 않거나 알지 못한다면 완전히 괜찮습니다. Laravel은 제가 시연하기 위해 선택한 프레임워크일 뿐이지만 모든 앱이 될 수 있습니다. Node.js, Python, Django, Fast API, Ruby on Rails 또는 기타 앱이 될 수 있습니다. 아이디어는 동일하지만 일부 배포 단계는 다를 수 있습니다.

전제 조건



배포하려면 Laravel 앱이 필요합니다. 없는 경우 걱정하지 마십시오. 인터넷에서 찾을 수 있는 최선Laravel (v9) app이 필요합니다(말장난 의도).

Laravel 앱을 배포해 보겠습니다. 📦👉☁️

Amazon Lightsail 인스턴스 생성


  • Lightsail 홈페이지로 이동합니다. 인스턴스 탭에서 인스턴스 만들기 버튼을 클릭합니다.
  • Create instance 페이지로 이동합니다. 이 데모에서는 Ubuntu를 사용하지만 원하는 OS를 선택할 수 있습니다.

    (A) 올바른 것을 선택하지 않은 경우 선택한 AWS 리전 및 가용 영역(AZ)을 변경합니다. (B) Linux/Unix 플랫폼을 선택합니다. (C) OS로 Ubuntu(20.04 LTS)를 선택합니다. 청사진은 OS 전용이어야 합니다. (D) 계획을 선택합니다. (E) 이름을 지정하고 (F) 페이지 하단에서 인스턴스 만들기 버튼을 누릅니다.
  • 인스턴스가 보류 중 상태입니다. 몇 분 안에 실행됩니다.

  • 고정 IP 할당



    읽기how to assign a Static IP to an Amazon Lightsail Instance .

    SSH를 사용하여 인스턴스에 연결



    ℹ️ I described in detail How to connect to an Amazon Lightsail instance using SSH.


  • 이름을 클릭하여 인스턴스 페이지로 이동합니다. 그리고 연결 탭으로 이동합니다. (A) 공용 IP, (B) SSH 사용자 이름 및 (C) SSH 키 다운로드의 세 가지가 필요합니다.
  • 키 파일의 권한 변경:

  • # Change "path/to/keyfile.pem" with your key file name
    chmod 400 path/to/keyfile.pem
    


  • SSH에 연결

  • #format 
    ssh -i "path/to/keyfile.pem" <username>@<ip_address>
    # Should look like this with your own value
    # ssh -i "LightsailDefaultKey-us-east-1.pem" [email protected]
    


  • 알려진 호스트에 IP를 추가하라는 메시지가 표시되면 yes를 입력하면 로그인됩니다.

  • 필요한 스크립트 설치



    서버가 생성되고 비어 있습니다. 필요한 항목에 따라 원하는 스크립트를 설치할 수 있습니다. 이 데모에서는 Laravel을 사용할 것입니다. 다른 앱/스택이 있어도 따라갈 수 있습니다.
  • 패키지 정보 업데이트

  • sudo apt-get update
    


  • 일부 패키지

  • sudo apt install curl git unzip -y
    


  • PHP 설치
    저는 최신 PHP 8.1을 좋아합니다. Ubuntu 20.04에서는 아직 공식적으로 사용할 수 없습니다. PHP 리포지토리를 활성화하여 PHP 8.1을 설치합니다.

  • sudo apt install software-properties-common -y
    sudo add-apt-repository ppa:ondrej/php -y
    sudo apt install php8.1-fpm php8.1-cli php8.1-mysql php8.1-curl php-xml php-mbstring -y
    

    php --version 명령을 사용하여 PHP 버전을 확인하십시오. 다음과 같은 내용이 표시되어야 합니다.

  • 작성기 설치

  • # Download the bin file
    curl -sS https://getcomposer.org/installer | php
    # Move it to correct path
    sudo mv composer.phar /usr/local/bin/composer
    # Make it executeable
    sudo chmod +x /usr/local/bin/composer
    

  • Nginx 설치 및 nginx 구성

  • sudo apt install nginx -y
    

  • 애플리케이션 저장소 복제

  • # go to www directory
    cd /var/www/html
    # clone the git repo
    sudo git clone https://github.com/HarunRay/laravel-to-lightsail.git
    # go to application directory
    cd laravel-to-lightsail
    # copy .env.example file
    cp .env.example .env
    # Install dependencies
    sudo composer install
    

  • nginx 구성 파일 생성

  • sudo vim /etc/nginx/sites-available/laravel
    

    이 코드를 붙여넣습니다. 52.201.59.133를 자신의 IP 주소로 변경하고 저장합니다.

    server {
        listen 80;
        listen [::]:80;
        server_name 52.201.59.133;
        root /var/www/html/laravel-to-lightsail/public;
    
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";
    
        index index.php;
    
        charset utf-8;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }
    
        error_page 404 /index.php;
    
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
    


    이제 다음을 실행합니다.

    # link nginx config 
    sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
    sudo systemctl start nginx
    sudo systemctl enable nginx
    


  • Laravel 앱 권한 설정

  • # Go to your laravel app directory
    cd /var/www/html/laravel-to-lightsail/
    # Add files & folder www-data user & group
    sudo chown -R www-data:www-data .
    # Add your ubuntu to group
    sudo usermod -a -G www-data ubuntu
    # Set file(s) permission
    sudo find . -type f -exec chmod 644 {} \;
    # Set folder(s) permission
    sudo find . -type d -exec chmod 755 {} \;
    # Set cache directory permission
    sudo chgrp -R www-data storage bootstrap/cache
    sudo chmod -R ug+rwx storage bootstrap/cache
    


  • 앱 키 생성

  • sudo php artisan key:generate
    


  • .env 파일 업데이트
    파일 열기

  • sudo vim /var/www/html/laravel-to-lightsail/.env
    


    이제 이 값을 변경하십시오.

    APP_ENV=production
    # Change IP to yours
    APP_URL=http://52.201.59.133
    


    이제 공용 IP 주소로 이동합니다. 내 것은 http://52.201.59.133입니다. 이 시작 페이지가 표시되어야 합니다.


    축하합니다. Laravel 앱이 Amazon Lightsail 인스턴스에서 시작되었습니다. 🚀

    결론



    다음 기사에서는 데이터베이스, 로드 밸런서 및 Redis(Elasticache)를 구성할 것입니다. 저를 팔로우하고 my newsletter을 구독하세요 .

    좋은 웹페이지 즐겨찾기