内容简介:当你准备部署 Laravel 应用到生产环境时,有一些重要的事情可以确保应用尽可能高效地运行,在本文档中我们就来探讨下这些要做的事情从而确保应用以最佳方式部署。如果部署应用的服务器运行的是 Nginx,可以使用下面的配置文件配置 Web 服务器。大部分情况下,这个文件需要根据服务器的配置做一些调整(如果你想要一个工具来协助管理服务器,可以考虑使用部署应用到生产环境时,确保优化过 Composer 的类自动加载映射以便 Composer 可以快速为给定类找到要加载的文件:
简介
当你准备部署 Laravel 应用到生产环境时,有一些重要的事情可以确保应用尽可能高效地运行,在本文档中我们就来探讨下这些要做的事情从而确保应用以最佳方式部署。
服务器配置
Nginx
如果部署应用的服务器运行的是 Nginx,可以使用下面的配置文件配置 Web 服务器。大部分情况下,这个文件需要根据服务器的配置做一些调整(如果你想要一个 工具 来协助管理服务器,可以考虑使用 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_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; fastcgi_index index.php; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } }
优化
自动加载优化
部署应用到生产环境时,确保优化过 Composer 的类自动加载映射以便 Composer 可以快速为给定类找到要加载的文件:
composer install --optimize-autoloader
注:除了优化自动加载器之外,还要在项目代码仓库中包含 composer.lock
文件,这样的话项目依赖可以更快安装。
优化配置加载
部署应用到生产环境时,需要确保在部署过程中运行了 Artisan 命令 config:cache
:
php artisan config:cache
这个命令会将所有 Laravel 配置文件合并成一个缓存文件,从而极大减少框架在加载配置值时对文件系统的 IO 操作。
注:如果你在部署过程中执行了 config:cache
命令,需要确保只在配置文件中调用了 env
函数。一旦配置被缓存后,就不会再加载 .env
文件,因此所有对 env
函数的调用都会返回 null
。
优化路由加载
如果你正在构建一个包含大量路由的大型应用,需要确保在部署过程中运行了 Artisan 命令 route:cache
:
php artisan route:cache
这个命令会生成一个缓存文件将所有路由注册浓缩到单个方法调用,从而在注册大量路由时提升路由注册性能。
注:由于该特性使用了 PHP 序列化功能,所以只能缓存基于控制器的应用路由,因为 PHP 不能序列化闭包。
使用 Forge 部署
如果你对自己管理服务器配置、安装各种工具软件以及维护大型应用所需服务没有信心,或者觉得这些操作过于繁琐,那么 Laravel Forge 是一个不错的选择。
Laravel Forge 可以在不同的云服务供应商(例如 DigitalOcean、Linode、AWS 等)中创建服务器,此外,Forge 还会帮你安装并管理构建大型 Laravel 应用所需的所有工具,例如 Nginx、 MySQL 、 Redis 、 Memcached 、Beanstalk 等等。
以上所述就是小编给大家介绍的《[ Laravel 5.7 文档 ] 快速入门 —— 部署应用到生产环境》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Kubernetes 部署利器 Helm 快速入门
- Kubernetes 入门实践:部署运行 Go 项目
- ES 入门(一):安装部署与基本概念
- 入门教程 | 从安装部署开始学习 Elasticsearch
- Golang入门:从安装、部署以及GoLand的安装开始
- linux 部署golang 项目(直接部署和基于nginx部署)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。