Laravel 배포

Jmnote (토론 | 기여)님의 2024년 6월 11일 (화) 02:20 판 (→‎Nginx)
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

4 최적화

4.1 캐싱 설정

4.2 이벤트 캐싱

4.3 라우트 캐싱

4.4 뷰 캐싱

5 디버그 모드

6 Health 라우트

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

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