书籍Symfony 5:快速轨道欧宝娱乐app下载地址

欧宝娱乐app下载地址Symfony 5:快速轨道是学习现代Symfony发展,从零到生产的最好书籍。欧宝娱乐app下载地址+300页展示Symfony与Docker,欧宝娱乐app下载地址 api,队列和异步任务,Webpack, spa等。

如何部署Symfony应用程序欧宝娱乐app下载地址

如何部署Symfony应用程序欧宝娱乐app下载地址

部署Symfony应用程欧宝娱乐app下载地址序可以是一个复杂和多样的任务,具体取决于安装程序和应用程序的要求。本文不是一个逐步指导,而是一个最常见的要求和部署思想的一般列表。

欧宝娱乐app下载地址Symfony部署基础知识

部署Symfony应用程序时所采取的典型步骤包括:欧宝娱乐app下载地址

  1. 将你的代码上传到生产服务器;
  2. 安装供应商依赖项(通常通过作曲家完成,并且可以在上传之前完成);
  3. 运行数据库迁移或类似任务以更新任何更改的数据结构;
  4. 清除(和可选择,加热)您的缓存。

部署还可以包括其他任务,例如:

  • 在源代码控制库中将代码的特定版本标记为发布版本;
  • 创建临时暂存区域以构建更新的设置“脱机”;
  • 运行任何可用的测试以确保代码和/或服务器的稳定性;
  • 文件中删除任何不必要的文件上市/目录保持您的生产环境清洁;
  • 清除外部缓存系统(如Memcached或者redis.)。

如何部署Symfony应用程序欧宝娱乐app下载地址

有几种方法可以部署Symfony应用程序。欧宝娱乐app下载地址从一些基本的部署策略开始,然后从那里开始构建。

基本文件传输

部署应用程序最基本的方式是通过FTP / SCP手动复制文件(或类似方法)。随着升级的进展,这与您缺乏控制的缺点。此方法还要求您在传输文件后采取一些手动步骤(请参阅常见的部署任务)

使用源代码控制

如果你正在使用源代码控制(例如Git或SVN),你可以通过让你的实时安装也成为你的存储库的副本来简化。当您准备进行升级时,请从源代码控制系统获取最新的更新。使用Git时,常见的方法是为每个版本创建一个标记,并在部署时检出适当的标记(参见Git标签)。

这使得更新您的文件更轻松,但您仍然需要担心手动执行其他步骤(参见常见的部署任务)。

使用平台即服务

使用平台即服务(PaaS)是快速部署Symfony应用程序的好方法。欧宝娱乐app下载地址有许多PaaS -下面是一些与Symfony工作良好的:欧宝娱乐app下载地址

使用构建脚本和其他工具

还有工具可以帮助缓解部署的痛苦。他们中的一些人已经专门针对Symfony的要求量身定制。欧宝娱乐app下载地址

EasyDeployBundle
将部欧宝娱乐app下载地址署工具添加到应用程序的Symfony包。
部署人员
这是Capistrano的另一个本土php重写,有一些用于symfony的食谱。欧宝娱乐app下载地址
Ansistrano
允许您通过yaml文件配置强大的部署的ansible角色。
马格兰人
此类卡斯特拉诺类似的部署工具是在PHP中构建的,PHP开发人员可能更容易延长其需求。
织物
这个基于python的库提供了一套基本的操作,用于执行本地或远程shell命令以及上传/下载文件。
Capistrano.欧宝娱乐app下载地址Symfony插件
Capistrano.是一个用Ruby编写的远程服务器自动化和部署工具。欧宝娱乐app下载地址Symfony插件是一个插件,可以缓解Symfony相关任欧宝娱乐app下载地址务,灵感Capifony.(这只适用于Capistrano 2)。

常见的部署任务

在部署你的实际源代码之前和之后,你需要做一些常见的事情:

)检查要求

有一些运行Symfony应用程序的技术要求欧宝娱乐app下载地址。在您的开发机器中,检查这些需求的推荐方法是使用欧宝娱乐app下载地址Symfony CLI。但是,在生产服务器中,您可能不希望安装Symfony CLI工具。欧宝娱乐app下载地址在这些情况下,在你的应用程序中安装另一个包:

1
美元作曲家需要symfony / re欧宝娱乐app下载地址quirements-checker

然后,确保Checker脚本中包含Checker:

1 2 3 4 5 6 7 8 9 10 11 12
{“......”:“......”,“脚本”:{“自动脚本”:{“供应商/ bin / requirements-checker”:“php-script”,“......”:“......”},“......”:“......”}}

b)配置环境变量

大多数Sy欧宝娱乐app下载地址mfony应用程序从环境变量读取它们的配置。在当地发展时,您通常会存储这些.env..env.local.(为当地覆盖)。在生产过程中,你有两个选择:

  1. 创建“真实”环境变量。如何设置环境变量,取决于您的设置:它们可以在命令行中设置为Nginx配置,或通过托管服务提供的其他方法设置;
  2. 或者,创建一个.env.local.文件喜欢您当地的开发。

这两种选择都没有明显的优势:使用宿主环境中最自然的任何一种。

提示

您可能不希望您的应用程序处理.env。*每个请求的文件。您可以生成一个优化.env.local.php哪个覆盖所有其他配置文件:

1
美元作曲家dump-env刺激

生成的文件将包含存储的所有配置.env.。如果要依赖于环境变量,请生成一个没有任何值的人:

1
美元编写器dump-env prod——空

安装/更新你的供应商

您的供应商可以在传输源代码之前更新(即更新小贩/目录,然后与源代码一起传输)或之后在服务器上。无论哪种方式,都要像你通常做的那样更新你的供应商:

1
美元编写器安装——no-dev——优化自动加载器

提示

--optimize-autoloader.标志通过构建“类映射”显著提高了Composer的自动加载器性能。的- 没有开发标志确保开发包没有安装在生产环境中。

警告

如果在此步骤中获得“未找到类”错误,则可能需要运行出口APP_ENV =刺激(或出口欧宝娱乐app下载地址symfony_env = prod.如果你没有使用欧宝娱乐app下载地址Symfony Flex.)在运行此命令之前,以便post-install-cmd脚本在运行中prod环境。

清除Symfony缓存欧宝娱乐app下载地址

确保你清理和预热你的Symfony缓存:欧宝娱乐app下载地址

1
美元app_env.=prodAPP_DEBUG=0PHP BIN / CONSOLE缓存:清除

E)其他事情!

根据您的设置,您需要有很多您需要做的事情:

应用生命周期:连续集成,QA等

虽然本文介绍了部署的技术细节,但将代码从开发到生产的完整生命周期可能有更多的步骤:部署到分期,QA(质量保证),运行测试等。

所有都强烈建议使用分期,测试,QA,连续集成,数据库迁移以及滚动的能力。有简单且复杂的工具,可以将部署视为您的环境需要简单(或复杂)。

不要忘记,部署应用程序还包括更新任何依赖项(通常是通过Composer)、迁移数据库、清理缓存和其他潜在的事情,比如将资产推送到CDN(参见常见的部署任务)。

故障排除

未使用的部署composer.json文件

项目根目录(其值通过kernel.project_dir.参数和getProjectDir())是由Symfony自动计算的,作为main . method的目录欧宝娱乐app下载地址composer.json存储文件。

在未使用的部署中composer.json文件,你需要重写getProjectDir()方法如本节所述

这项工作,包括代码样本,是在一个创作共用BY-SA 3.0许可证。