Laravel Laravel

以下是翻译后的版本:

  • 序章

    • 发布说明
    • 升级指南
    • 贡献指南
  • 快速开始

    • 安装
    • 配置
    • 目录结构
    • 前端
    • 入门套件
    • 部署
  • 架构概念

    • 请求生命周期
    • 服务容器
    • 服务提供者
    • 门面
  • 基础

    • 路由
    • 中间件
    • CSRF 保护
    • 控制器
    • 请求
    • 响应
    • 视图
    • Blade 模板
    • 资源打包
    • URL 生成
    • 会话
    • 验证
    • 错误处理
    • 日志记录
  • 深入探讨

    • Artisan 控制台
    • 广播
    • 缓存
    • 集合
    • 并发
    • 上下文
    • 契约
    • 事件
    • 文件存储
    • 辅助函数
    • HTTP 客户端
    • 本地化
    • 邮件
    • 通知
    • 包开发
    • 进程
    • 队列
    • 速率限制
    • 字符串
    • 任务调度
  • 安全

    • 认证
    • 授权
    • 邮件验证
    • 加密
    • 哈希
    • 密码重置
  • 数据库

    • 快速开始
    • 查询构建器
    • 分页
    • 迁移
    • 数据填充
    • Redis
    • MongoDB
  • Eloquent ORM

    • 快速开始
    • 关系
    • 集合
    • 变换器/类型转换
    • API 资源
    • 序列化
    • 工厂
  • 测试

    • 快速开始
    • HTTP 测试
    • 控制台测试
    • 浏览器测试
    • 数据库测试
    • Mock 测试
  • 软件包

    • Breeze
    • Cashier(Stripe)
    • Cashier(Paddle)
    • Dusk
    • Envoy
    • Fortify
    • Folio
    • Homestead
    • Horizon
    • Jetstream
    • Mix
    • Octane
    • Passport
    • Pennant
    • Pint
    • Precognition
    • Prompts
    • Pulse
    • Reverb
    • Sail
    • Sanctum
    • Scout
    • Socialite
    • Telescope
    • Valet
  • API 文档
Icon

提示 您正在浏览旧版本的 Laravel 的文档. 请考虑将你的项目升级到 Laravel 11.x.

部署
10.x
10.x 9.x 8.5 8.x 7.x 6.x 5.8 5.7 5.6 5.5 5.4 5.3 5.2 5.1

Laravel 10 中文文档 /

未匹配的标注

部署

  • 介绍
  • 服务器要求
  • 服务器配置
    • Nginx
  • 优化
    • 优化自动加载器
    • 优化配置加载
    • 优化路由加载
    • 优化视图加载
  • 调试模式
  • 使用 Forge / Vapor 进行部署

介绍

当您准备将 Laravel 应用程序部署到生产环境时,您可以做一些重要的事情来确保应用程序尽可能高效地运行。本文将会提供几个范本以使你的 Laravel 应用部署妥当。

服务器要求

Laravel 框架有一些系统要求。您应该确保您的 Web 服务器具有以下最低 PHP 版本和扩展:

  • PHP >= 8.1
  • Ctype PHP 扩展
  • cURL PHP 扩展
  • DOM PHP 扩展
  • Fileinfo PHP 扩展
  • Filter PHP 扩展
  • Hash PHP 扩展
  • Mbstring PHP 扩展
  • OpenSSL PHP 扩展
  • PCRE PHP 扩展
  • PDO PHP 扩展
  • Session PHP 扩展
  • Tokenizer PHP 扩展
  • XML PHP 扩展

服务器配置

Nginx

如果您将应用程序部署到运行 Nginx 的服务器上,您可以将以下配置文件作为为您的 Web 服务器配置的起点。最有可能需要根据您的服务器配置自定义此文件。如果您需要管理服务器,请考虑使用官方的 Laravel 服务器管理和部署服务,如 Laravel Forge。

请确保像以下配置一样,您的 Web 服务器将所有请求指向应用程序的 public/index.php 文件。永远不要尝试将 index.php 文件移动到项目的根目录,因为从项目根目录为应用提供服务会将许多敏感配置文件暴露到公网。

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    root /srv/example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    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/php8.1-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 变量 env 函数的调用将返回 null。

优化路由加载

如果您正在构建一个包含许多路由的大型应用程序,您应该确保在部署过程中运行 route:cache Artisan 命令:

php artisan route:cache

这个命令将所有路由注册缩减成单个方法调用且放入缓存文件中,提高注册大量路由时的性能。

优化视图加载

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

php artisan view:cache

这个命令预编译了所有的 Blade 视图,使它们不再是按需编译,因此可以提高返回视图的每个请求的性能。

调试模式

在 config/app.php 配置文件中,调试选项决定了有多少错误信息实际上会显示给用户。默认情况下,该选项设置为遵守 APP_DEBUG 环境变量的值,该值存储在您的应用程序的.env 文件中。

在生产环境中,这个值应该永远是 false。如果在生产环境中将 APP_DEBUG 变量的值设置为 true,则存在将敏感配置值暴露给应用程序最终用户的风险。

使用 Forge / Vapor 部署

Laravel Forge

如果你还不准备好管理自己的服务器配置,或者对于配置运行一个强大的 Laravel 应用程序所需的各种服务不太熟悉,那么 Laravel Forge 是一个非常好的选择。

Laravel Forge 可以在诸如Linode、AWS 等多种基础设施服务提供商上创建服务器。此外,Forge 还安装和管理构建强大的 Laravel 应用程序所需的所有工具,例如 Nginx、MySQL、Redis、Memcached、Beanstalk 等等。

注意
想获取 Laravel Forge 完整部署指南吗?请查看 Laravel Bootcamp 和 Laracasts 上提供的 Forge 视频系列。

Vapor

如果你想要一个为 Laravel 调整的完全无服务器、自动扩展的部署平台,请看看 Laravel Vapor。Laravel Vapor 是一个由 AWS 提供支持的基于无服务器概念的 Laravel 部署平台。在 Vapor 上启动您的 Laravel 基础架构,并爱上无服务器的可扩展简单性。Laravel Vapor 由 Laravel 的创作者进行了精细调校,以便与框架无缝协作,因此您可以像以前一样继续编写 Laravel 应用程序。

本文章首发在 网站上。



原文地址:/cndocs/10.x/de...

译文地址:/cndocs/10.x/de...

上一篇 下一篇

成为Laravel合作伙伴

Laravel Partners是提供一流Laravel开发和咨询服务的精英商店。我们每个合作伙伴都可以帮助您制定一个精美,结构完善的项目.

我们的伙伴
Laravel
亮点
  • Our Team
  • 发布说明
  • 入门
  • 路由
  • Blade 模板
  • 身份验证
  • 用户授权
  • Artisan 控制台
  • 数据库
  • Eloquent ORM
  • 测试
资源
  • Laravel Bootcamp
  • Laracasts
  • Laravel News
  • Laracon
  • Laracon EU
  • Laracon India
  • Jobs
  • Forums
  • Trademark
  • 版本发布时间
  • 包开发
  • 命令行应用
  • TALL stack全栈开发
  • Blade UI Kit
  • 前端资源构建
伙伴
  • WebReinvent
  • Vehikl
  • Tighten
  • 64 Robots
  • Active Logic
  • Byte 5
  • Curotec
  • Cyber-Duck
  • DevSquad
  • Jump24
  • Kirschbaum
生态系统
  • Cashier
  • Dusk
  • Echo
  • Envoyer
  • Forge
  • Horizon
  • Nova
  • Octane
  • Sail
  • Sanctum
  • Scout
  • Spark
  • Telescope
  • Valet
  • Vapor

Laravel是一个具有表达力,优雅语法的Web应用程序框架。我们认为,发展必须是一种令人愉悦的创造力,才能真正实现。Laravel试图通过减轻大多数Web项目中使用的常见任务来减轻开发的痛苦.

Laravel是Taylor Otwell的商标.
Copyright © 2011-2025 Laravel中文网 LLC.

  • Twitter
  • GitHub
  • Discord
Laravel 全栈开发网 推荐使用阿里云 按Ctrl+D试试