我几乎已经完成了使用Symfony2开发的项目的开发,并希望将该项目上线。
然而,我想有很多事情需要做才能让一切正常。我想,开发模式需要禁用等等…需要做什么以及如何做?
在Symfony2项目中,最重要的事情是什么?网络上的每个人都可以使用这个项目
我建议您使用Capifony进行部署。它做了很多开箱即用的事情,你可以让它运行任何你需要的自定义命令。有关详细信息,请参阅其文档。
关于开发模式,除非你已经从app_dev.php
中删除了IP检查,否则你不必担心部署它。当然,如果你愿意,你可以告诉Capifony在部署时删除它。
处理部署的最佳方法是创建"构建"脚本,该脚本将:
- 从捆绑包和供应商中删除所有带有测试的文件夹和文件
- 删除
app_dev.php
文件 - 确保
app/cache
和app/logs
是完全可写/可读的 - 将您的项目打包到档案中(rpm f.e.)
然后,在部署之前,您应该在项目中创建标记,这意味着您的应用程序的某个版本已经发布(我建议遵循这个git分支模型)。
- 创建标记
- 运行构建脚本
- 将存档上载到主机
- 打开包装
- 享受您的项目
我目前正在研究同样的事情。
你必须考虑的第一件事是你想部署的"专业程度"。你可以使用很多工具:
- 连续集成服务器(例如Hudson、Jenkins)
- 构建工具(例如Phing、Capistrano-->Capifony、Shell脚本)
- 版本控制工具(如Git、SVN)
我认为最简单的设置是只使用Build工具,我想您已经在使用某种版本控制了。
根据你使用的工具,设置是不同的,但我认为你的应用程序应该考虑一些事情(也许不是所有的都适用于你的应用)
- 在版本控制中创建标记
- 在生产时复制文件夹中的新代码-->如果你在一个新的文件夹中,你不需要清除缓存和日志,因为这些不应该第一次出现在你的版本控制中
- 加载composer(如果您正在使用它)
- 安装供应商
- 更新数据库架构
- 从捆绑包中安装资产
- 将符号链接从当前版本移动到新站点的文件夹
这些是我目前生产部署应用程序所需的东西,如果您部署到测试环境中,则应该加载fixture并运行测试脚本。
这里描述得很好的另一个选项是使用Apache Ant部署Symfony2应用程序。ApacheAnt是一个Java库和命令行工具,其任务是将构建文件中描述的过程驱动为相互依赖的目标和扩展点。