Версія фреймворка: 8.x

Розгортання

Вступ

Коли ви будете готові до розгортання програми Laravel у виробничій системі, є кілька важливих речей, які ви можете зробити, щоб забезпечити максимально ефективну роботу своєї програми. У цьому документі ми розглянемо декілька чудових вихідних моментів, щоб переконатися, що програма Laravel правильно розгорнута.

Конфігурація сервера

Nginx

Якщо ви розгортаєте свою програму на сервері, на якому запущений Nginx, ви можете використовувати наступний файл конфігурації як вихідну точку для налаштування веб-сервера. Швидше за все, цей файл потрібно буде налаштувати залежно від конфігурації вашого сервера. Якщо вам потрібна допомога в управлінні сервером, розгляньте можливість використання такої послуги, якКузня Laravel:

server {
    listen 80;
    server_name example.com;
    root /srv/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.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.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

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

Оптимізація

Оптимізація автозавантажувача

Розгортаючи у виробничій версії, переконайтеся, що ви оптимізуєте карту автозавантажувача класу Composer, щоб Composer швидко знайшов відповідний файл для завантаження для даного класу:

composer install --optimize-autoloader --no-dev
Окрім оптимізації автозавантажувача, ви завжди повинні обов’язково включати файлcomposer.lockфайл у сховищі керування джерелом вашого проекту. Залежності вашого проекту можна встановити набагато швидше, коли acomposer.lockфайл присутній.

Оптимізація завантаження конфігурації

Розгортаючи вашу програму до робочої версії, ви повинні переконатися, що ви запустилиconfig:cacheКоманда ремісників під час процесу розгортання:

php artisan config:cache

Ця команда поєднає всі конфігураційні файли Laravel в один кешований файл, що значно зменшує кількість поїздок, які фреймворк повинен здійснити до файлової системи під час завантаження значень конфігурації.

Якщо ви виконаєте файлconfig:cacheкоманди під час процесу розгортання, ви повинні бути впевнені, що телефонуєте лише наenvфункція з файлів конфігурації. Після кешування конфігурації файл.envфайл не буде завантажений, і всі дзвінки доenvфункція для.envповертаються змінніnull.

Оптимізація завантаження маршруту

Якщо ви створюєте великий додаток з багатьма маршрутами, переконайтеся, що у вас запущеноroute:cacheКоманда ремісників під час процесу розгортання:

php artisan route:cache

Ця команда зменшує всі ваші реєстрації маршрутів в один виклик методу в кешованому файлі, покращуючи ефективність реєстрації маршруту при реєстрації сотень маршрутів.

Оптимізація завантаження View

Розгортаючи вашу програму до робочої версії, ви повинні переконатися, що ви запустилиview:cacheКоманда ремісників під час процесу розгортання:

php artisan view:cache

Ця команда попередньо компілює всі ваші View Blade, щоб вони не компілювалися на вимогу, покращуючи продуктивність кожного запиту, який повертає View.

Розгортання з Forge / Vapor

Якщо ви ще не зовсім готові керувати власною конфігурацією сервера або вам не зручно налаштовувати всі різні сервіси, необхідні для запуску надійної програми Laravel,Кузня Laravelє чудовою альтернативою.

Laravel Forge може створювати сервери на різних постачальниках інфраструктури, таких як DigitalOcean, Linode, AWS та ін. Крім того, Forge встановлює та керує всіма інструментами, необхідними для створення надійних додатків Laravel, таких як Nginx, MySQL, Redis, Memcached, Beanstalk та ін.

Пара Laravel

Якщо ви хочете повністю безсерверну платформу розгортання з автоматичним масштабуванням, налаштовану на Laravel, відвідайтеПара Laravel. Laravel Vapor - це безсерверна платформа розгортання для Laravel, що працює на базі AWS. Запустіть свою інфраструктуру Laravel на Vapor і полюбіть масштабовану простоту безсерверності. Laravel Vapor налаштований творцями Laravel для безперебійної роботи з фреймворком, щоб ви могли продовжувати писати свої програми Laravel точно так, як звикли.