最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(9) Laravel的部署

    正文概述 转载于:掘金(王中阳Go)   2021-08-23   220

    这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战

    之前写了一篇Laravel提高DB查询效率的文章,转发到群里后竟然有人质疑我说“Laravel是他好几年前用的框架,没想到现在还有人在用。”

    纳尼,什么意思嘛?别忘了php是最好的语言!

    个人认为Laravel是非常优雅的开发框架:优雅的设计模式、强大的功能实现、各种方便的扩展、持续的版本更新,更主要的是迄今为止我认为最优秀的技术开发社区。

    我必须为Laravel打Call。

    2020年9月8号,Laravel发布了8.0版本。 Laravel计划于2022年1月25日发布9.0版本。

    下面我介绍一下目前Laravel最新版(8.0版本)的新特性:

    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 应用程序。

    华丽的分割线

    要了解更多有关在Laravel的知识点,请查看我的专栏: 服务端开发从入门到精通

    推荐阅读

    1. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(1)Laravel如何优雅的设置全局变量

    2. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(2)Laravel Jetstream和模型工厂类

    3. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(3)迁移压缩,队列批处理,改善速率限制

    4. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(4)维护模式优化

    5. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(5) 动态Blade 事件监听器优化 事件测试助手

    6. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(6)

    7. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(7)Laravel安装指南

    8. 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(8) 目录结构介绍

    Last but not least

    技术交流群请到 这里来。 或者添加我的微信 wangzhongyang0601 ,一起学习。


    起源地 » 竟然有人质疑我还在用Laravel开发?别忘了PHP是最好的语言。(9) Laravel的部署

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元