将Symfony2项目发布到web上



我几乎已经完成了使用Symfony2开发的项目的开发,并希望将该项目上线。

然而,我想有很多事情需要做才能让一切正常。我想,开发模式需要禁用等等…需要做什么以及如何做?

在Symfony2项目中,最重要的事情是什么?网络上的每个人都可以使用这个项目

我建议您使用Capifony进行部署。它做了很多开箱即用的事情,你可以让它运行任何你需要的自定义命令。有关详细信息,请参阅其文档。

关于开发模式,除非你已经从app_dev.php中删除了IP检查,否则你不必担心部署它。当然,如果你愿意,你可以告诉Capifony在部署时删除它。

处理部署的最佳方法是创建"构建"脚本,该脚本将:

  1. 从捆绑包和供应商中删除所有带有测试的文件夹和文件
  2. 删除app_dev.php文件
  3. 确保app/cacheapp/logs是完全可写/可读的
  4. 将您的项目打包到档案中(rpm f.e.)

然后,在部署之前,您应该在项目中创建标记,这意味着您的应用程序的某个版本已经发布(我建议遵循这个git分支模型)。

  1. 创建标记
  2. 运行构建脚本
  3. 将存档上载到主机
  4. 打开包装
  5. 享受您的项目

我目前正在研究同样的事情。

你必须考虑的第一件事是你想部署的"专业程度"。你可以使用很多工具:

  1. 连续集成服务器(例如Hudson、Jenkins)
  2. 构建工具(例如Phing、Capistrano-->Capifony、Shell脚本)
  3. 版本控制工具(如Git、SVN)

我认为最简单的设置是只使用Build工具,我想您已经在使用某种版本控制了。

根据你使用的工具,设置是不同的,但我认为你的应用程序应该考虑一些事情(也许不是所有的都适用于你的应用)

  • 在版本控制中创建标记
  • 在生产时复制文件夹中的新代码-->如果你在一个新的文件夹中,你不需要清除缓存和日志,因为这些不应该第一次出现在你的版本控制中
  • 加载composer(如果您正在使用它)
  • 安装供应商
  • 更新数据库架构
  • 从捆绑包中安装资产
  • 将符号链接从当前版本移动到新站点的文件夹

这些是我目前生产部署应用程序所需的东西,如果您部署到测试环境中,则应该加载fixture并运行测试脚本。

这里描述得很好的另一个选项是使用Apache Ant部署Symfony2应用程序。ApacheAnt是一个Java库和命令行工具,其任务是将构建文件中描述的过程驱动为相互依赖的目标和扩展点。

最新更新