教程 > laravel 教程 > 阅读:109

laravel 完整部署——迹忆客-ag捕鱼王app官网

简介

当准备将laravel应用程序部署到生产环境时,我们可以做一些重要的事情来确保应用程序尽可能高效地运行。 在本文档中,我们将介绍一些确保laravel应用程序正确部署的很好的方式。


服务配置

nginx

如果要将应用程序部署到运行nginx的服务器,则可以使用以下配置文件配置web服务器。 通常情况下需要根据服务器的配置自定义此文件。

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文件时,可以更快地安装项目的依赖项。

配置项加载优化

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

$ php artisan config:cache

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

警告: 如果在部署过程中使用config:cache命令,那么我们必须要保证只是在 配置文件中使用env()函数。因为一旦config:cache命令执行了,那.env文件将不会再被加载,这时所有的env()函数都将返回null。

路由加载优化

如果要构建具有许多路由的大型应用程序,则应确保在部署项目中运行 artisan命令route:cache

$ php artisan route:cache

此命令将所有路由注册到一个缓存文件内的单个方法中,从而提高了注册数百条路由时的路由加载的性能。

警告:由于此功能使用php序列化,因此只能为仅使用基于控制器的路由的应用程序缓存路由。 php无法序列化closures。

视图加载优化

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

$ php artisan view:cache

此命令将对所有blade视图进行预编译,这样就不会按需编译它们,从而提高了为每个请求返回视图的速度。

查看笔记

扫码一下
查看教程更方便
网站地图