如何部署Symfony应用程序ob娱乐下载
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.2,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何部署Symfony应用程序ob娱乐下载
部署Symfony应用程ob娱乐下载序可能是一项复杂而多样的任务,具体取决于应用程序的设置和需求。本文不是一个循序渐进的指南,而是一个关于部署的最常见需求和想法的一般列表。
ob娱乐下载Symfony部署基础
部署Symfony应用程序时采取的典型步骤包括:ob娱乐下载
- 将代码上传到生产服务器;
- 安装你的供应商依赖项(通常通过Composer完成,也可能在上传之前完成);
- 运行数据库迁移或类似的任务来更新任何已更改的数据结构;
- 清除(并可选地预热)缓存。
部署还可以包括其他任务,例如:
如何部署Symfony应用程序ob娱乐下载
有几种方式可以部署Symfony应用程序。ob娱乐下载从一些基本的部署策略开始,并在此基础上进行构建。
基本文件传输
部署应用程序的最基本方法是通过FTP/SCP(或类似的方法)手动复制文件。这有其缺点,因为随着升级的进行,您缺乏对系统的控制。此方法还要求您在传输文件后执行一些手动步骤(请参阅常见部署任务)
使用源代码控制
如果您正在使用源代码控制(例如Git或SVN),您可以通过将您的实时安装也作为存储库的副本来简化。当您准备升级时,从您的源代码控制系统获取最新的更新。在使用Git时,一种常见的方法是为每个版本创建一个标记,并在部署时检出适当的标记(请参阅Git标签).
这使得您可以更新文件更容易,但您仍然需要担心手动执行其他步骤(请参阅常见部署任务).
将平台作为服务使用
使用平台即服务(PaaS)是快速部署Symfony应用程序的好方法。ob娱乐下载有许多PaaS -下面是一些很好地与Symfony一起工作:ob娱乐下载
使用构建脚本和其他工具
还有一些工具可以帮助减轻部署的痛苦。其中一些已经专门针对Symfony的需求进行了定制。ob娱乐下载
- 部署人员
- 这是Capistrano的另一个原生PHP重写,带有一些Symfony的现成菜谱。ob娱乐下载
- Ansistrano
- Ansible角色,允许您通过YAML文件配置强大的部署。
- Magallanes
- 这个类似capistrano的部署工具是用PHP构建的,对于PHP开发人员来说,可以更容易地扩展它们的需求。
- 织物
- 这个基于python的库提供了执行本地或远程shell命令以及上传/下载文件的基本操作套件。
- Capistrano与ob娱乐下载Symfony插件
- Capistrano是一个用Ruby编写的远程服务器自动化和部署工具。ob娱乐下载Symfony插件是一个插件,以减轻Symfony相关的任ob娱乐下载务,灵感来自Capifony(这只适用于Capistrano 2)。
常见部署任务
在部署你的实际源代码之前和之后,你需要做一些常见的事情:
A)检查要求
有一些运行Symfony应用程序的技术需求ob娱乐下载.在您的开发机器中,检查这些需求的推荐方法是使用obb体育 .但是,在您的生产服务器上,您可能不希望安装Symfony CLI工具。ob娱乐下载在这些情况下,在你的应用程序中安装另一个包:
1
$作曲家需要symfony/需求检查ob娱乐下载器
然后,确保检查器包含在你的Composer脚本中:
12 3 4 5 6 7 8 9 10 11 12
{“…”:“…”,“脚本”:{“auto-scripts”:{“供应商/ bin / requirements-checker”:“php脚本”,“…”:“…”},“…”:“…”}}
B)配置环境变量
大多数Syob娱乐下载mfony应用程序从环境变量读取配置。在本地开发时,通常将这些存储在.env
而且.env.local
(用于本地覆盖)。在生产中,你有两个选择:
- 创建“真正的”环境变量。如何设置环境变量取决于你的设置:它们可以在命令行中设置,在你的Nginx配置中,或者通过你的托管服务提供的其他方法设置;
- 或者,创建
.env.local
像你的本地开发文件。
这两种选择都没有明显的优势:使用宿主环境中最自然的东西。
提示
类型可能不希望应用程序处理.env。*
存档每一个请求。你可以生成一个优化的.env.local.php
覆盖所有其他配置文件:
1
$作曲家dump-env prod
生成的文件将包含存储在.env
.如果你想只依赖于环境变量,使用以下方法生成一个不带任何值的环境变量:
1
$作曲家dump-env prod——空
C)安装/更新你的供应商
您的供应商可以在传输源代码之前更新(即更新供应商/
目录,然后将其与您的源代码一起传输)或随后在服务器上。不管怎样,像往常一样更新你的供应商:
1
$编译器安装-no-dev -优化-自动加载器
提示
的——optimize-autoloader
flag通过构建“类映射”来显著提高Composer的自动加载性能。的——no-dev
标志确保开发包没有安装在生产环境中。
谨慎
如果在此步骤中得到“class not found”错误,则可能需要运行出口APP_ENV =刺激
(或出口SYMFOob娱乐下载NY_ENV =刺激
如果你不吸毒的话ob娱乐下载Symfony Flex),然后执行该命令post-install-cmd
脚本在刺激
环境。
E)其他事情!
根据你的设置,你可能需要做很多其他的事情:
- 正在运行任何数据库迁移
- 清除APCu缓存
- 添加/编辑CRON作业
- 建立和缩小你的资产Webpack Encore
- 将资产推送到CDN
- 在使用Apache web服务器的共享托管平台上,您可能需要安装ob娱乐下载symfony / apache-pack包
-
应用程序生命周期:持续集成、QA等。
虽然本文介绍了部署的技术细节,但从开发到生产的整个生命周期可能包含更多步骤:部署到登台、QA(质量保证)、运行测试等等。
强烈建议使用分段、测试、QA、持续集成、数据库迁移和在出现故障时回滚的能力。有简单的工具和更复杂的工具,可以根据您的环境要求使部署变得简单(或复杂)。
不要忘记,部署应用程序还包括更新任何依赖项(通常通过Composer),迁移数据库,清除缓存和其他潜在的事情,如将资产推到CDN(参见常见部署任务).
故障排除
不使用composer.json
文件
的项目根目录(其值通过kernel.project_dir
参数和getProjectDir ()方法)是由Symfony自动计算的目录ob娱乐下载composer.json
文件被保存。
的部署中composer.json
文件时,您需要重写getProjectDir ()方法如本节所述.