我承认在部署测试与生产代码方面,我没有遵循任何“正确”的方法。我一直在使用ASP.NET,并且通常在Visual Studio中本地运行它,然后将其上传,再在生产服务器上进行测试。
我读过几篇文章说,部署Rails应用程序更难,ruby网站上有特殊的程序/方式可供部署RoR。我只是玩过RoR。部署有什么特别之处吗?你不能只是从开发机器复制并粘贴代码然后运行它(从开发到生产)吗?这是因为一个在Apache上,另一个在内置服务器上运行吗?
如果有影响,这将在Mac服务器上进行。
我承认在部署测试与生产代码方面,我没有遵循任何“正确”的方法。我一直在使用ASP.NET,并且通常在Visual Studio中本地运行它,然后将其上传,再在生产服务器上进行测试。
我读过几篇文章说,部署Rails应用程序更难,ruby网站上有特殊的程序/方式可供部署RoR。我只是玩过RoR。部署有什么特别之处吗?你不能只是从开发机器复制并粘贴代码然后运行它(从开发到生产)吗?这是因为一个在Apache上,另一个在内置服务器上运行吗?
如果有影响,这将在Mac服务器上进行。
现在部署RoR已经不再困难,特别是使用Phusion Passenger。
有些困难的是使用capistrano、vlad等工具搭建自动化生产环境。如果你不介意把代码简单地复制到服务器上,那么这样做完全没问题。但是大多数人选择不这样做,因为这样会失去许多自动化部署工具所提供的好处。
在将Rails部署到生产环境中,你可能会遇到以下问题:
数据库连接。 你需要确保数据库连接器已设置为生产环境。
数据库迁移。 即使你已经在生产/测试/预发布环境中运行了数据库迁移,你仍然需要对生产数据库运行它们。
Ruby版本。 Ruby的版本或子版本可能会导致一些问题,例如 在安装debugger-linecache(1.1.1)时发生错误,Bundler无法继续
Gem依赖。 你的生产环境可能与开发环境有不同的软件包和gems。Bundler会在很大程度上解决这个问题并安装依赖项,但偶尔仍会出现需要手动解决的问题。
依赖关系。 某些机器上的某些gems具有特定的依赖关系。我曾经看到过在我的unix系统上使用的gems在OSX上工作的频繁问题,反之亦然。
请注意,如果在同一台机器上,则最后3个问题不会影响你,但基于标题和全面性,我还是将其包括在内。
这并不是特别难。如果你遵循惯例,然后进行一点配置,它就简化为以下内容:
cap deploy
...然而,有时需要一些努力来安排好工作流程。
好消息是,许多人已经打包了RoR的解决方案和堆栈,您可以直接插入并使用。例如,搜索google ec2onrails - 这是一个打包的Ubuntu镜像和一组capistrano任务,用于在Amazon的EC2云中运行rails应用程序,并且已经预先设置了许多常见的内容。
选择一个好的托管提供商,您也应该能够找到类似的东西。