Heroku使用手记

        Heroku是一个部署ruby on rails的玩意儿,或者说服务,因为它可以通过gem安装,到它的网站看看,发现页面非常简洁同时也很美观,首页就有几行代码说明了像首页界面一样简单的Heroku的使用方法。用我的定义Heroku就是一个空间提供商,但是它又完全不同于以往见到的那些,随便说两条:

  • 一种基于git的命令行式的ruby on rails应用部署工具集
  • 命令行工具集相当厉害但web界面的管理方式美观有余功能不足
  • 支持多种版本的rails,目前到2.3.3
  • 关键是有免费的5M空间可以用

先说这么多,下面介绍怎样使用Heroku,环境是ubuntu 9.04 Server。

一、安装Heroku

由于Heroku使用git方式push内容,所以先装git,什么是git?就不介绍了。

然后通过gem方式安装Heroku:

同时为了使用可以导入导出heroku数据库,我们再装一下tabs,即使你不装,在使用到这个命令的时候也会提示你装:

安装完毕后,可以直接输入heroku查看帮助。下面介绍怎样使用heroku,切记使用之前先去doc里看看现在支持到那个版本的rails了。

二、使用Heroku

目标:创建一个应用并加入一个Post的scaffold

整个过程还可以参考heroku提供的快速指南。但是没有介绍ssh key的生成。

先生成ssh密钥对,安装ubuntu时已经集成了ssh服务,所以不介绍安装:

会提示输入一些路径什么的,全部默认即可。这样会在~/.ssh/下生产密钥对。

这里先使用rails创建一个应用并加入git:

cd 
rails weblog 
cd weblog 
script/generate scaffold Post title:string content:text 
git init 
git add . 
git commit -m "add a new app"

应用准备好了,下面使用Heroku:

heroku create *****
输入你在Heroku注册的用户名,不要说还没有,快去注。
Email: ddr888@example.com
Password: 
Uploading ssh public key ~/.ssh/id_rsa.pub
Created http://*****.heroku.com/ | git@heroku.com:*****.git
Git remote heroku added

*****处如果没有值,Heroku会自动为你生成一个,这样就可以去http://*****.heroku.com/看看,是不是已经有首页了?但是里面还没有应用,下面把你刚才创建的应用添加进去,只要一行代码:

这里我遇到点问题,由于企业防火墙没有开git端口,让我一直连接不上Heroku的服务器,这里需要git端口:9418. 现在看到Heroku在动了吧,稍等。。。上传完毕:

Counting objects: 7, done.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 402 bytes, done.
Total 4 (delta 3), reused 0 (delta 0)

-----Heroku receiving push
-----Rails app detected
       Compiled slug size is 80K
-----Launching....... done
       http://ddr888.heroku.com deployed to Heroku

想知道每个过程是做什么的,去查文档。然后是把你的schema中的东西同步进Heroku提供的PostgreSQL 8.3.5中。

这个命令是不是很熟悉,但是不要再做create了,因为Heroku已经帮你做了。然后打开应用:

看到熟悉的rails欢迎界面了吧,然后在URL后加上posts: http://ddr888.heroku.com/posts,怎么样看到脚手架了吧,添加两个试试,very good!

最后补充一句,在本地更新代码后使用下面的命令同步进Heroku,如果改了数据库也不要忘了迁移:

git commit -a 
git push heroku

总结

    本文介绍了Heroku的安装和基本使用,其强大的功能有待我们一起去发现。虽然它是收费的,但是毕竟目前还是有初级应用的免费空间可以用(5M),学习ruby on rails也有地方实验,还不错。快试试吧。

原文地址:https://www.cnblogs.com/ddr888/p/1576585.html