>백엔드 개발 >PHP 튜토리얼 >클라우드에 대한 Laravel 앱을 준비하십시오

클라우드에 대한 Laravel 앱을 준비하십시오

Emily Anne Brown
Emily Anne Brown원래의
2025-03-07 01:02:09641검색
라라코너스의 최근 발표는 Laravel 커뮤니티 내 클라우드 기반 배포에 대한 새로운 관심을 불러 일으켰습니다. 앱을 배포하는 방법에 대한 논쟁이 계속됨에 따라 한 가지는 분명합니다. 클라우드는 Laravel 사용자에게보다 실용적인 옵션이되고 있습니다. 이 기사에서는 Frankenphp, Caddy, Dockerfiles를 사용하여 클라우드 환경에서 배포를 위해 Laravel 앱을 준비하고 Sevalla에 배포하는 방법을 살펴 보겠습니다. 그래서 우리는 어디서 시작합니까? 물론 지역 환경에서! ? #local 개발 환경 단순화를 위해, 당신은 당신의 로컬 컴퓨터에 새로운 Laravel 앱이 설치되어 있다고 가정합니다.이 데이터베이스에 연결되어 일부 데이터를 읽고 쓰기 위해 PostgreSQL 데이터베이스에 연결됩니다. 계속 진행하기 전에 다음 내용이있는 프로젝트 루트에

파일이 있는지 확인하십시오.

:

일단 확인되면 건축을 시작할 수 있습니다. ? ☕️

생산 환경과 매우 유사한 지역 개발 환경을 갖는 것이 항상 좋은 생각입니다. 이렇게하면 제작에 앱을 배포 할 때 일찍 문제를 해결하고 놀라움을 피할 수 있습니다. 생산 설정을 모방하려면 Docker와 Docker Compose를 사용할 것입니다. 컴퓨터에 Docker를 설치하지 않은 경우 공식 웹 사이트에서 다운로드 할 수 있습니다. #데이터베이스가없는 러블 먼저 Laravel 프로젝트의 루트에서 라는 새 파일을 만들고 다음 내용을 추가하십시오.

:

이 구성 파일은 Laravel 앱을 실행하는 데 필요한 확장 기능을 포함하는 Frankenphp 이미지 인 이미지를 사용하는 라는 서비스를 정의합니다.

환경 변수는 Caddy가 포트 에서 듣도록 구성합니다. 또한 호스트 컴퓨터에서 앱에 액세스하기 위해 포트 를 노출시킵니다.

구성을 테스트하려면 터미널에서 다음 명령을 실행해보십시오. .env 브라우저에서

로 이동할 때 누락 된 드라이버로 인해 연결이 데이터베이스에 연결되지 않았다는 LARAVEL 오류 페이지가 표시되어야합니다. Laravel 앱을 아직 데이터베이스에 연결하지 않았기 때문에 이것은 예상됩니다.

굉장합니다. 지금까지 우리는 Frankenphp 서버가 제공하도록 Laravel 앱을 구성했습니다. 다음, 로컬 앱을 PostgreSQL 데이터베이스와 연결하겠습니다! .env Laravel 앱을 PostgreSQL 데이터베이스에 연결하려면 몇 가지 작업을 수행해야합니다.

. 먼저 파일에 다음 환경 변수를 설정해야합니다.
<!-- Syntax highlighted by torchlight.dev -->...
DB_CONNECTION=pgsql
...
:
<!-- Syntax highlighted by torchlight.dev -->...
DB_CONNECTION=pgsql
...
다음에 이어 파일에 새로운 서비스를 추가하고 개발 환경에 맞춤

를 만들어야합니다. 다음 내용으로 파일을 작성하고 업데이트하십시오 compose.yml : Dockerfile 는 로컬/개발 환경에서만 사용하기위한 것이며 이미지를 확장하여 확장자를 포함하여 Postgresql 데이터베이스에 연결해야합니다.

:

여기에 많은 일이 일어나고 있습니다. 무엇이 바뀌 었는지, 그 이유를 살펴 보겠습니다. Dockerfile.dev 우리는

서비스를 업데이트하여 라는 사용자 정의 dockerfile을 사용하여 PostgreSQL 데이터베이스에 연결하는 데 필요한 확장 기능이 포함 된 새 이미지를 작성했습니다. 우리는 이미지를 사용하여 PostgreSQL 데이터베이스를 실행하는 라는 새 서비스를 추가했습니다. 또한 데이터베이스 사용자, 비밀번호 및 데이터베이스 이름을 설정하기 위해 일부 환경 변수를 정의했습니다. 우리는 컴퓨터의 데이터베이스에 데이터를 지속하기 위해 라는 새로운 볼륨을 만들었고, 서비스를 다시 시작할 때 Docker는 재사용 할 수 있습니다.
<!-- Syntax highlighted by torchlight.dev -->services:
  php:
    image: dunglas/frankenphp:php8.3-bookworm
    environment:
      SERVER_NAME: ":8080"
    ports:
      - 8080:8080
    volumes:
      - .:/app
라는 새로운 서비스가 추가되었습니다. 이 이미지는

명령을 실행하여 데이터베이스 마이그레이션을 실행하는 데 사용됩니다. Dockerfile.dev 키는 마이그레이션이 실행되기 전에 서비스가 가동되고 실행되도록합니다. dunglas/frankenphp:php8.3-bookworm 서비스는 이제 Laravel 앱이 시작되기 전에 데이터베이스 마이그레이션이 실행되도록하기 위해 pdo_pgsql 서비스에 따라 다릅니다. 우리는 서비스가 마이그레이션을 실행하기 전에 PostgreSQL 데이터베이스가 UP 및 실행 중인지 확인하기 위해 서비스에 건강 검사를 추가했습니다.

구성을 테스트하려면 터미널에서 다음 명령을 실행하십시오.

이제 응용 프로그램이 PostgreSQL 데이터베이스에 연결되어야하며 데이터베이스 마이그레이션은 항상 실행됩니다. ? 귀하의 지역 환경은 이제 생산 환경을 모방 할 준비가되었습니다. 이제 앱을 로컬로 개발하고 생산에 사용할 수있는 유사한 설정을 테스트 할 수 있습니다. compose.yml #생산을위한 준비 이제 생산 환경에 필요한 변경을 할 시간입니다.

첫 번째 단계는 Docker에게 생산 이미지를 작성할 때 안전하게 무시할 수있는 디렉토리를 알려주는 것입니다. Laravel 프로젝트의 루트에서 라는 새 파일을 만들고 다음 내용을 추가하십시오.
<!-- Syntax highlighted by torchlight.dev -->docker compose up [-d]
:

이 파일은 Docker에게

,
  1. 디렉토리를 무시하도록 지시합니다.그런 다음 그런 다음 생산 이미지를 작성하는 데 사용될

    를 만듭니다 : . Dockerfile :

    this Dockerfile는 우리가 이전에 만든

    와 유사하지만 몇 가지 추가 단계가 포함되어 있습니다.
    <!-- Syntax highlighted by torchlight.dev -->...
    DB_CONNECTION=pgsql
    ...
    
    Frankenphp 이미지는 Caddy를 기본 웹 서버로 사용하므로 Caddy가 Port

    . 우리는 이미지에 작곡가를 설치하기 위해 PHP 확장을 설치합니다. Laravel 앱의 종속성을 설치하기 위해 명령이 실행됩니다. 우리는 작업 디렉토리를 Dockerfile로 설정하고 Laravel 앱의 내용을 이미지에 복사했습니다. Dockerfile.dev 지역 환경의 변경 사항을 테스트하려면 앱의 프로덕션 빌드를 생성해야합니다. 터미널에서 다음 명령을 실행하십시오

    이 명령은 현재 디렉토리의
      를 기반으로
    1. 라는 새로운 도커 이미지를 빌드합니다. 새로 제작 된 생산 이미지를 테스트하려면 다음 명령을 사용하십시오. SERVER_NAME :8080 8080 파일의
    2. 환경 변수의 값으로 를 교체하거나 여기에서 키를 잡습니다. 브라우저에서 LocalHost : 8080을 방문하면 앱이 프로덕션 모드에서 시작해야합니다. 데이터베이스 연결 부족으로 인해 오류가 발생할 수 있지만 예상됩니다.
    3. ##클라우드에 배치 이제 프로덕션 준비된 Docker 이미지가 있으므로 클라우드 제공 업체에 배포 할 수 있습니다. ? 이 자습서에서는 기반 배포를 배포하는 간단한 방법을 제공하는 새로운 클라우드 제공 업체 인 Sevalla를 사용할 것입니다. 앱은 PostgreSQL 데이터베이스에 의존하므로 Sevalla에서 새로운 PostgreSQL 데이터베이스를 먼저 프로비저닝하는 것이 좋습니다. Sevalla 대시 보드에 로그인 한 후 @composer
    4. 생성 데이터베이스 모달로 이동하십시오 Postgresql 데이터베이스 를 선택하십시오 설정을 확인하고 데이터베이스를 만듭니다
    5. composer install
    6. 데이터베이스가 준비되면 Sevalla에서 Laravel 앱을 만들 수 있습니다.
    7. 생성 앱 모달로 이동하십시오 선호하는 GIT 제공 업체에서 앱의 저장소를 선택하십시오
    8. laravel 를 설정하십시오

      빌드 유형으로

      를 선택하십시오 나머지 설정을 확인하고 "나중에 배포"버튼을 누르십시오.
      <!-- Syntax highlighted by torchlight.dev -->services:
        php:
          image: dunglas/frankenphp:php8.3-bookworm
          environment:
            SERVER_NAME: ":8080"
          ports:
            - 8080:8080
          volumes:
            - .:/app
      

      my-laravel-app 앱이 준비된 경우 이제 PostgreSQL 데이터베이스에 연결할 수 있습니다.

        앱의 페이지로 이동하십시오 "네트워크 "탭으로 이동하십시오 "연결 추가 "버튼을 클릭하고 PostgreSQL 데이터베이스를 선택하십시오 설정을 확인하고 "Connect"를 누르십시오
      1. 그런 다음 데이터베이스의 연결 세부 정보와 함께 "환경 변수"탭에서 다음 환경 변수를 설정하십시오.

      • DB_CONNECTION
      • 데이터베이스의 내부 네트워크 주소를 마지막 단계는 응용 프로그램을 시작하기 전에 응용 프로그램이 데이터베이스 mirgations를 실행할 작업 프로세스를 설정하는 것입니다. DB_HOST "프로세스"탭으로 이동하십시오 "프로세스 만들기 "버튼을 클릭하고"job "를 선택하십시오 명령을

  2. 로 설정하십시오 시작 정책을 "배포 전"로 설정하십시오 설정을 확인하고 "Create"를 누르십시오 DB_PORT
  3. 이 작업이 완료되면 이제 배포 탭에서 앱의 수동 배포를 시작할 수 있습니다. ? 모두 잘 지내면 축하합니다! 클라우드 용 Laravel 앱을 성공적으로 준비했습니다. ? #conclusion 이 기사에서는 를 탐구했습니다 DB_DATABASE docker 및 를 사용하여 생산 환경을 모방하기 위해 지역 환경을 설정하는 방법 Docker, Frankenphp 및 Caddy를 사용하여 클라우드 환경에서 배포를 위해 Laravel 앱을 준비하는 방법. 우리는 또한 앱을 Sevalla와 같은 클라우드 제공 업체에 배포하는 방법을 다루었습니다.
  4. 이 단계를 수행하면 Laravel 앱을 새로운 높이로 가져가 클라우드 기반 배포의 이점을 누릴 수 있습니다. ? #update : 2024 년 9 월 8 일
  5. 우리는 X에 대한 토론을 통해 커뮤니티로부터 귀중한 피드백을 받았습니다. 첫 번째 요점은 Frankenphp 서버를 우회했기 때문에 파일에 DB_USERNAME 명령을 포함시키는 것이 불필요하다는 것을 강조했습니다. 우리는
  6. 파일의 관련 섹션을 업데이트하여이를 수정했습니다. Kévin Dunglas (Frankenphp의 제작자)가 공유 한 두 번째 포인트는 Alpine 대신 데비안 기반 이미지 ()를 사용하여 권장하는데, Debian은 PHP와 더 나은 호환성과 Frankenphp와의 성능을 향상시키기 때문에 권장했습니다. 결과적으로, 우리는

    bookworm 파일을 모두 업데이트했습니다. 우리는 지역 사회의 지원과 피드백에 감사합니다. ? ❤️ alpine

위 내용은 클라우드에 대한 Laravel 앱을 준비하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.