배포


Nginx

  • 개선
  • 오토로더 개선
    • 구성 로딩 개선
    경로 로딩 개선
    • Forge를 사용하여 배포
    • Introduction
    < 코드를 적용할 때>Laravel을 프로덕션 환경에 배포할 준비가 되면 반드시 비용을 지불하세요. 애플리케이션이 최대한 효율적으로 실행되도록 하려면 몇 가지 중요한 사항에 주의하세요. 이 문서에서는 Laravel 애플리케이션이 올바르게 배포되었는지 확인하기 위한 몇 가지 핵심 사항을 다룰 것입니다.
서버 구성

Nginx

애플리케이션을 Nginx 서버에 배포하려면 다음 구성 파일을 시작으로 사용할 수 있습니다. 서버를 구성하세요. 대부분의 경우 이 파일은 서버 구성에 따라 일부 사용자 정의 수정이 필요할 것입니다. 서버 관리에 도움이 필요하다면 Laravel Forge 사용을 고려해 보세요:

server {
    listen 80;
    server_name example.com;
    root /example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm 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/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
        include fastcgi_params;  
         }

    location ~ /\.(?!well-known).* {
        deny all;   
         }
     }

Laravel 应用到生产环境时,请确保几个重要的注意点以保证你的应用能尽可能高效的运行。本文中我们将会覆盖几个重点来确保你的 Laravel 应用部署得当。

服务器配置

Nginx

如果你想要部署你的应用到 Nginx 服务器上,你可能会用到下面这个配置文件作为一个开始来配置你的 Web

개선 사항

자동 로더 개선

애플리케이션을 프로덕션 환경에 배포할 준비가 되면 Composer가 올바른 클래스를 빠르게 찾을 수 있도록 Composer 클래스의 자동 로딩 매핑을 최적화해야 합니다.

composer install --optimize-autoloader --no-dev

팁: 오토로더를 최적화하는 것 외에도 프로젝트 코드 저장소에 composer.lock 파일을 포함해야 합니다. 프로젝트 코드에 composer.lock 파일이 있으면 프로젝트에 필요한 종속성을 더 빠르게 설치할 수 있습니다. composer.lock 这个文件。当你的项目代码中有 composer.lock 这个文件时,便可以更快的安装项目中需要的依赖项。

优化配置加载

当你将应用程序部署到生产环境时,你应当确保在你部署过程中运行 config:cache Artisan 命令:

php artisan config:cache

此命令将所有 Laravel 的配置文件合并到一个缓存文件,这次极大地减少了框架在加载配置值时必须对文件系统进行访问的次数。

{note} 如果在你部署过程中执行 config:cache 命令,你应当确保你仅从你的配置文件中调用 env 函数。一旦配置被缓存,.env 文件将不被加载并且对 env 函数的所有调用将返回 null

优化路由加载

如果你想构建具有许多路由的大型应用程序,你应当确保在你部署的过程中运行 route:cache

애플리케이션을 프로덕션에 배포할 때 다음을 수행해야 합니다. 배포하는 동안 반드시 config:cache Artisan 명령을 실행하세요:

php artisan route:cache
이 명령은 모든 Laravel 구성 파일을 단일 캐시 파일로 병합합니다. 이번에는 프레임워크가 구성 값을 로드하는 데 걸리는 시간을 크게 줄입니다. 파일 시스템에 액세스해야 하는 횟수입니다.

{note} 배포 중에 config:cache 명령을 실행하는 경우 구성 파일에서 env 함수만 호출해야 합니다. 구성이 캐시되면 .env 파일은 로드되지 않으며 env 함수에 대한 모든 호출은 null을 반환합니다.

경로 로딩 최적화많은 경로가 포함된 대규모 애플리케이션을 구축하려는 경우 , 배포 중에 route:cache Artisan 명령을 실행해야 합니다:
rrreee
이 명령은 모든 경로 등록을 캐시 파일의 단일 메서드 호출로 줄여 수백 개의 경로 등록을 개선했습니다. 라우팅 시 경로 등록 수행. 🎜🎜🎜{note} 이 기능은 PHP 직렬화를 사용하므로 특별히 컨트롤러 기반 라우팅을 사용하는 애플리케이션 경로만 캐시할 수 있습니다. PHP는 폐쇄 경로를 직렬화할 수 없습니다. 🎜🎜🎜🎜🎜🎜🎜🎜🎜 Forge로 배포 🎜🎜 자신의 서버 구성을 관리할 준비가 되지 않았거나 강력한 Laravel 애플리케이션을 실행하는 데 필요한 다양한 서비스 구성에 익숙하지 않은 경우 Laravel Forge를 선택하는 것이 좋습니다. 🎜🎜Laravel Forge는 다양한 인프라 제공업체(예: DigitalOcean, Linode, AWS 등)에 서버를 생성할 수 있습니다. 또한 Forge는 Nginx, MySQL, Redis, Memcached, Beanstalk 등과 같은 강력한 Laravel 애플리케이션을 구축하는 데 필요한 모든 도구를 설치하고 관리합니다. 🎜🎜이 글은 🎜LearnKu.com🎜 웹사이트에 처음 게시되었습니다. 🎜🎜