Heroku是一个专门用于解决服务器管理问题的云应用平台。你只需构建您的应用程序,然后通过Git将其推送到Heroku就可以了。那么如何部署一个Sinatra应用程序呢?请往下看。
如果你之前参照了我的文章用Sinatra构建一个由数据驱动的应用程序,那么你可能已经迫不及待地想要进行部署了。由于Sinatra是一个Ruby应用,所以部署起来并不像一个PHP应用程序那么简单,但它也不算难。
如果你刚刚开始接触Sinatra,这个帖子或许会帮到你。如果你具有PHP的基础或一定的开发能力,并想尝试Sinatra,这里有一篇Rubysource的 文章,向你展示如何用Sinatra创建一个博客应用程序。
首先你需要在Heroku上有一个账户(注册是免费的)
如果你对你的程序在本地环境的运行情况感到满意(即你已经完成了应用程序的开发,并且其在本地运行没有问题),接下来要做的是确保你有以下文件:
其中Gemfile包含对应用程序中使用的所有Ruby gem的引用:
gem 'sinatra'
gem 'rdiscount'
gem 'data_mapper'
gem 'dm-migrations'
gem 'pony'
gem 'dm-postgres-adapter', :group => :production
gem 'dm-sqlite-adapter', :group => :development
group :production do
gem 'pg', '0.14.1'
end
你可能不需要其中的一些gem:比如rdiscount和pony。我将在之后的帖子中讨论这一部分。请留意生产和开发的环境,Heroku不支持Sqlite。
需要注意的是,Sinatra是一个Rack应用程序,而Heroku与此并无关系。我们只是需要一个文件来配置我们应用程序的运行方式:
在config.ru中你需要以下代码:
require './main'
run Sinatra::Application
通过Git(一种源代码管理系统)可以将应用程序部署到Heroku 。你可以从命令行初始化一个Git仓库:
git init
你还需要Heroku Gem:
gem install heroku
你还需要创建SSH密钥,这里为此提供了一些帮助。
通过下面的操作将你的密钥连接到Heroku,这会用于与你在Heroku的计算机之间进行安全通信:
heroku keys:add
系统会要求你添加你所创建的Heroku帐户的凭据。
回到命令行上输入以下指令:
heroku create nameofapp
在此我们用nameofapp来指代你应用的名字,那么Heroku会为你的应用将创建这样的网址:nameofapp.herokuapp.com。(请你记住这一点)
然后,假设你已经完成了最新的更新,你可以这样做来使用git推送:
git push heroku master
然后Heroku会收到git推送和压缩文件,并安装所需的Ruby gem,最后不出意外的话便会成功地部署你的应用程序。
完成了这些之后,就可以继续开发应用程序并使用Git推送到Heroku进行部署了。