Laravel部署流程和部署优化思路

简介: Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。

Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。


Laravel的部署


前言


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


服务器配置


Nginx


如果你想要部署你的应用到 Nginx 服务器上,你可能会用到下面这个配置文件作为一个范本来配置你的 Web 服务器。这个文件很可能需要根据你的服务器配置来做一些自定义的修改。如果你需要协助来管理你的服务器,可以考虑使用 Laravel


Forge:


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 这个文件。当你的项目中包含了 composer.lock 文件,便可以很快地安装项目中需要的依赖项。


优化配置加载


当你准备部署应用到生产环境时,你应该部署过程中运行 config:cache Artisan 命令:


php artisan config:cache


该命令会合并所有的 Laravel 配置文件到一个缓存文件,这将极大程度上减少框架加载配置值时对文件系统的访问次数。


注意:如果你在部署过程中运行了 config:cache 命令,你应该确保你仅从配置文件中调用 env 函数。一旦配置被缓存,.env 文件将不再加载并且 env 方法将会返回 null。


优化路由加载


如果你在构建一个拥有大量路由的大型应用,你应该确保你在部署的过程中执行 route:cache:


php artisan route:cache


这个命令将会把所有的路由注册所见到一个缓存文件的单个函数调用,从而在注册上百个路由时能够提高路由注册的性能。


优化视图加载


当你往生产环境中部署应用时,你应该确保在部署过程中运行 view:cache:


php artisan view:cache


这个命令预编译所有的 Blade 视图,因此不会按需编译,此举提高了每个返回视图的请求的性能。


使用 Forge / Vapor 部署


如果你还没有准备好管理自己的服务器配置,或者不熟悉对强大的 Laravel 应用所需要的各种各样的服务的配置,Laravel Forge 是一个不错的选择。 Laravel Forge 能够在各种基础设施提供商(如:DigitalOcean,Linode,AWS 等)上创建服务器。 此外,Forge 能够安装和管理强大的 Laravel 应用所需的各种各样的工具,比如:Nginx, MySQL,Redis,Memcached,Beanstalk 等。


Laravel Vapor


如果你想要在 Laravel 应用中使用完全的 serverless,自动扩展的部署平台,可以参考 Laravel Vapor。Laravel Vapor 是一个 AWS 为 Laravel 提供的一个 serverless 部署平台。在 Vapor 上启动你的 Laravel 基础架构,爱上 serverless 的可扩展简单性。Laravel 的创建者对 Laravel Vapor 进行了微调,可以与框架无缝协作,这样您就可以像以前一样继续开发 Laravel 应用程序。


相关文章
|
4月前
|
设计模式 安全 关系型数据库
PHP开发涉及一系列步骤和技术
【7月更文挑战第2天】PHP开发涉及一系列步骤和技术
136 57
|
3月前
|
存储 API 数据库
Django后端架构开发:构建在线云媒资系统思路解析
Django后端架构开发:构建在线云媒资系统思路解析
45 0
|
4月前
|
JSON Go C++
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
开发与运维C++问题之在iLogtail新架构中在C++主程序中新增插件的概念如何解决
42 1
|
自然语言处理 安全
Web3.0钱包系统开发(开发功能)/指南教程/步骤流程/方案设计/项目逻辑/规则玩法/案例源码
Wallet type selection: Determine the type of wallet, which can be a browser plugin wallet, mobile application wallet, or online web wallet. The choice of wallet type should be based on the target user group and usage environment.
|
6月前
|
前端开发 JavaScript 应用服务中间件
部署前端项目到服务器过程详解
部署前端项目到服务器过程详解
269 0
|
6月前
|
监控 安全 数据处理
了解阿里云 RPA:如何实现流程自动化
机器人流程自动化(RPA)是一种快速发展的技术,它可以帮助企业实现重复性任务的自动化,提高工作效率和准确性。阿里云 RPA 作为一款强大的 RPA 解决方案,为用户提供了一种简单而高效的方式来实现流程自动化。本文将介绍阿里云 RPA 的功能和特点,以及如何使用它来实现流程自动化。
dapp只涨不跌项目系统开发稳定版/步骤需求/逻辑方案/案例项目/源码指南
The development steps of a DApp smart contract system that only rises but not falls may include the following:
|
敏捷开发 测试技术
推三返一开发稳定版丨推三返一项目系统开发详细指南/方案需求/步骤逻辑/流程功能/案例设计/技术架构/源码程序
推三返一系统开发是一种软件开发模式,也被称为迭代增量开发模式。它是一种敏捷开发方法的一种,通过将整个开发过程分为多个迭代周期,每个周期都会增加新的功能和特性,并在每个迭代周期结束后进行测试、反馈和修改。推三返一系统开发的核心思想是“推进三步,反馈一步”。
|
缓存 开发框架 负载均衡
大型项目的发布部署:第一章:发布部署流程
大型项目的发布部署:第一章:发布部署流程
494 0
|
存储 安全 测试技术
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 2【gitlab到底咋配置】
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 2【gitlab到底咋配置】
【实测】用土话让你明白如何做测试平台的持续部署和集成 - 2【gitlab到底咋配置】