"Laravel 배포"의 두 판 사이의 차이

77번째 줄: 77번째 줄:


==최적화==
==최적화==
애플리케이션을 프로덕션 환경에 배포할 때는 설정, 이벤트, 라우트, 뷰와 같은 다양한 파일을 캐시해야 합니다. Laravel은 이러한 모든 파일을 캐시할 수 있는 단일하고 편리한 <code>optimize</code> Artisan 명령어를 제공합니다. 이 명령어는 애플리케이션 배포 과정의 일부로 호출하는 것이 일반적입니다:
<syntaxhighlight lang='console'>
php artisan optimize
</syntaxhighlight>
<code>optimize</code> 명령어로 생성된 모든 캐시 파일을 제거하려면 <code>optimize:clear</code> 메소드를 사용할 수 있습니다:
<syntaxhighlight lang='console'>
php artisan optimize:clear
</syntaxhighlight>
아래에서는 <code>optimize</code> 명령어가 실행하는 각 세부 최적화 명령어에 대해 논의할 것입니다.
===캐싱 설정===
===캐싱 설정===
===이벤트 캐싱===
===이벤트 캐싱===
===라우트 캐싱===
===라우트 캐싱===
===뷰 캐싱===
===뷰 캐싱===
==디버그 모드==
==디버그 모드==
==Health 라우트==
==Health 라우트==
==Forge / Vapor를 사용한 쉬운 배포==
==Forge / Vapor를 사용한 쉬운 배포==

2024년 6월 11일 (화) 02:25 판

Deployment
배포

1 소개

Laravel 애플리케이션을 프로덕션에 배포할 준비가 되었을 때, 애플리케이션이 가능한 한 효율적으로 실행되도록 하기 위해 할 수 있는 중요한 작업들이 있습니다. 이 문서에서는 Laravel 애플리케이션이 올바르게 배포되었는지 확인하기 위한 몇 가지 훌륭한 시작점을 다룰 것입니다.

2 서버 요구사항

Laravel 프레임워크는 몇 가지 시스템 요구사항이 있습니다. 웹서버가 다음 최소 PHP 버전 및 확장을 갖추고 있는지 확인해야 합니다:

  • PHP >= 8.2
  • Ctype PHP 확장
  • cURL PHP 확장
  • DOM PHP 확장
  • Fileinfo PHP 확장
  • Filter PHP 확장
  • Hash PHP 확장
  • Mbstring PHP 확장
  • OpenSSL PHP 확장
  • PCRE PHP 확장
  • PDO PHP 확장
  • Session PHP 확장
  • Tokenizer PHP 확장
  • XML PHP 확장

3 서버 설정

3.1 Nginx

다음은 Nginx를 실행 중인 서버에 애플리케이션을 배포할 때 사용할 수 있는 기본 설정 파일입니다. 서버의 설정에 따라 이 파일을 커스터마이징해야 할 가능성이 높습니다. 서버 관리를 지원받고 싶다면 Laravel Forge와 같은 Laravel의 공식 서버 관리 및 배포 서비스를 사용하는 것을 고려해 보십시오.

아래의 설정 파일과 같이 웹서버가 모든 요청을 애플리케이션의 public/index.php 파일로 전달하도록 설정해야 합니다. index.php 파일을 프로젝트의 루트 디렉토리로 옮기려 해서는 안되며, 프로젝트 루트에서 애플리케이션을 제공하면 많은 민감한 설정 파일이 공개 인터넷에 노출될 수 있습니다:

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /srv/example.com/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.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_hide_header X-Powered-By;
    }
 
    location ~ /\.(?!well-known).* {
        deny all;
    }
}

3.2 FrankenPHP

FrankenPHP도 Laravel 애플리케이션을 서빙하는 데 사용할 수 있습니다. FrankenPHP는 Go로 작성된 현대적인 PHP 애플리케이션 서버입니다. FrankenPHP를 사용하여 Laravel PHP 애플리케이션을 서빙하려면 php-server 명령어를 다음과 같이 호출하기만 하면 됩니다:

frankenphp php-server -r public/

FrankenPHP가 지원하는 Laravel Octane 통합, HTTP/3, 최신 압축, 또는 Laravel 애플리케이션을 독립 실행형 바이너리로 패키징하는 기능과 같은 더 강력한 기능을 활용하려면 FrankenPHP의 Laravel 문서를 참조하십시오.

4 최적화

애플리케이션을 프로덕션 환경에 배포할 때는 설정, 이벤트, 라우트, 뷰와 같은 다양한 파일을 캐시해야 합니다. Laravel은 이러한 모든 파일을 캐시할 수 있는 단일하고 편리한 optimize Artisan 명령어를 제공합니다. 이 명령어는 애플리케이션 배포 과정의 일부로 호출하는 것이 일반적입니다:

php artisan optimize

optimize 명령어로 생성된 모든 캐시 파일을 제거하려면 optimize:clear 메소드를 사용할 수 있습니다:

php artisan optimize:clear

아래에서는 optimize 명령어가 실행하는 각 세부 최적화 명령어에 대해 논의할 것입니다.

4.1 캐싱 설정

4.2 이벤트 캐싱

4.3 라우트 캐싱

4.4 뷰 캐싱

5 디버그 모드

6 Health 라우트

7 Forge / Vapor를 사용한 쉬운 배포

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}