如何部署一个Symfony应用程ob娱乐下载序

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何部署一个Symfony应用程ob娱乐下载序

部署一个Symfony应ob娱乐下载用程序可以是一个复杂而多样的任务根据设置和应用程序的需求。这篇文章不是一个步骤-求解指南,但最常见的是一个通用的列表为部署需求和想法。

ob娱乐下载Symfony部署基础知识

典型的步骤而部署一个Symfony应用程序包括:ob娱乐下载

  1. 上传你的代码到生产服务器;
  2. 安装您的供应商依赖(通常通过作曲家和可能做过上传);
  3. 运行数据库迁移或类似的任务更新任何改变数据结构;
  4. 清算(和可选,热身)你的缓存。

部署可能还包括其他任务,比如:

  • 标记一个特定版本的代码发布的源代码控制存储库;
  • 创建一个临时暂存区域建立更新设置“离线”;
  • 运行任何测试可以确保代码和/或服务器稳定;
  • 删除任何不必要的文件公共/目录保持生产环境清洁;
  • 结算(如外部缓存系统Memcached复述,)。

如何部署一个Symfony应用程ob娱乐下载序

有几种方法可以部署一个Symfony应用程序。ob娱乐下载从一些基本部署策略和建立。

基本的文件传输

部署应用程序的最基本的方法是手动复制文件通过FTP / SCP(或类似的方法)。这有其缺点,你缺乏控制系统升级的进展。这种方法也需要采取一些传输的文件(见后手动步骤常见的部署后任务)

使用源代码控制

如果你使用源代码控制(例如Git或SVN),可以简化也通过现场安装存储库的副本。当你准备升级,获取最新的更新从你的源代码控制系统。使用Git时,一个常见的方法是创建一个标签为每个发布和查看相应的标签部署(见Git标签)。

这使得更新你的文件更容易,但你仍然需要手动担心采取其他步骤常见的部署后任务)。

使用平台作为一种服务

使用平台即服务(PaaS)可以成为一个伟大的方式来部署你的Symfony应用快速、轻松地。ob娱乐下载有许多PaaS,下面是几个工作与Symfony:ob娱乐下载

使用构建脚本和其他工具

也有工具来帮助缓解疼痛的部署。他们中的一些已经专门针对Symfony的要求。ob娱乐下载

EasyDeployBundle
一个ob娱乐下载Symfony包添加部署您的应用程序的工具。
部署人员
这是另一个原生PHP Capistrano的改写,与一些Symfony的准备的食谱。ob娱乐下载
Ansistrano
Ansible角色,允许您配置一个强大的部署通过YAML文件。
Magallanes
这Capistrano-like部署工具是建立在PHP中,PHP开发人员可能容易扩展的需求。
织物
这个基于python库提供了一个基本的操作来执行本地或远程shell命令和上传/下载文件。
Capistranoob娱乐下载Symfony插件
Capistrano是一个用Ruby编写自动化远程服务器和部署工具。ob娱乐下载Symfony插件是一个插件来缓解Symfony相关任务,ob娱乐下载灵感来自Capifony(只能用Capistrano 2)。
sf2debpkg
帮助你建立一个本地Debian软件包Symfony项目。ob娱乐下载
基本脚本
您可以使用一个shell脚本,蚂蚁或任何其他项目构建工具的部署脚本。

常见的部署后任务

部署后实际的源代码,有许多共同的你需要做的事情:

)检查要求

使用ob娱乐下载Symfony要求检查检查如果您的服务器运行Symfony应用程序满足技术要求。ob娱乐下载

B)配置环境变量

大多数Syob娱乐下载mfony应用程序读取的配置环境变量。通常在开发本地,你会存储这些.env.env.local(为当地覆盖)。在生产,你有两个选择:

  1. 创建“真实”环境变量。如何设置环境变量,取决于你的设置:他们可以在命令行中设置,在你的Nginx的配置,或通过其他方法所提供的你的托管服务。
  2. 或者,创建一个.env.local文件就像您的本地开发(请参见下面的note)

没有显著优势的两个选择:使用任何托管环境是最自然的。

请注意

如果你使用.env。*生产上的文件,你可能需要移动你的ob娱乐下载symfony / dotenv依赖于require-dev需要composer.json:

1 2
美元作曲家删除symfony / dob娱乐下载otenv美元作曲家需要symfony / doob娱乐下载tenv

C)安装/更新你的供应商

可以更新你的供应商在转移你的源代码(即更新供应商/与你的源代码目录,然后转移)或之后在服务器上。无论哪种方式,更新你的供应商为你通常做的事:

1
美元作曲家——no-dev optimize-autoloader安装

提示

——optimize-autoloader国旗作曲家的自动装卸机性能显著提高构建一个“类地图”。的——no-dev国旗确保发展包没有安装在生产环境。

谨慎

如果你得到一个“找不到”的错误在这个步骤中,您可能需要运行出口APP_ENV =刺激(或出口SYMFOob娱乐下载NY_ENV =刺激如果你不使用ob娱乐下载Symfony Flex在运行此命令之前,这样post-install-cmd脚本运行在刺激环境。

D)明确Symfony缓存ob娱乐下载

确保你清楚热身Symfony缓存:ob娱乐下载

1
美元php bin /控制台缓存:明确——env =刺激——没有调试

E)其他事情!

可能会有很多其他的事情,你需要做的,根据您的设置:

  • 运行任何数据库迁移
  • 清理你的APC缓存
  • 添加/编辑CRON作业
  • 建设和削减你的资产与Webpack安可
  • 推动资产的CDN

应用程序生命周期:持续集成、质量保证等。

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

使用分段、测试、QA、持续集成、数据库迁移和回滚的能力在失败的情况下都是强烈建议。有简单和更复杂的工具和一个可以部署简单或复杂的环境需要。

别忘了部署您的应用程序还包括更新任何依赖项(通常通过作曲家),数据库迁移,清理你的缓存和其他潜在的推动资产CDN(见之类的东西常见的部署后任务)。

故障排除

部署不使用composer.json文件

ob娱乐下载Symfony应用程序提供一个kernel.project_dir参数和一个相关的getProjectDir ()方法。您可以使用这个方法来执行操作与文件路径相对于你的项目的根目录。发现项目根目录的逻辑是基于主要的位置composer.json文件。

如果您的部署方法不使用作曲家,你可能已经删除了composer.json文件和应用程序不会在生产服务器上运行。解决方案是覆盖getProjectDir ()方法在应用程序内核和返回你的项目的根目录:

1 2 3 4 5 6 7 8 9 10 11
/ / src / Kernel.php/ /……内核扩展BaseKernel{/ /……公共函数getProjectDir(){返回__DIR__“/ . .”;}}
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。