标签:des style blog class c code
今天研究了 2小时解决了 免费云空间的问题
这篇文章的主角就是Heroku,他的基本服务都是免费的,并且是无限流量,无限空间,最大的优点就是支持git,支持一键部署,这里鄙视下百度云空间,所有服务都是收费的,在中国这么穷B的国度,不知道此策略能得到大家认可么?
进入主题
Heroku 很多人不知道,因为这个平台是主推Rails服务的,但是它也是完美的能兼容以下几种平台
Ruby
PHP
NODE.JS
HTML
但是这个平台为什么是免费呢?因为它最主要的利润来源是数据库服务
这个是一个服务商的收费标准,很贵吧?
Heroku 是一个主流的 PaaS 提供商,在开发人员中广受欢迎。这个服务围绕着基于 Git 的工作流设计,假如你熟悉 Git ,那部署就十分简单。这个服务原本是为托管 Ruby 应用程序而设计的,但 Heroku 之后加入了对 Node.js 、Clojure 、Scala 、Python 和 Java 等语言的支持。Heroku 的基础服务是免费的。
下面我们使用 Heroku 部署我们的博客。
注册成功后,就进入了控制面板页面,如图所示:
点击 Create a new app ,填写独一无二的应用名称后,点击 creat app 即创建成功,然后点击Finish up 。
此时跳转到控制面板页,并且可以看到我们创建的应用了。我们通过 应用名称.herokuapp.com即可访问我们的应用主页。如图所示:
Heroku 官方提供了 Heroku Toolbelt 工具更方便地部署和管理应用。它包含三个部分:
Heroku Toolbelt 下载地址:https://toolbelt.heroku.com/ 。
注意:假如你的电脑上已经安装了 Git ,那么在安装的时候选择 Custom Installation 并去掉安装 Git 的选项,否则选择 Full Installation 。
安装成功后,打开 Git Bash ,输入 heroku login
,然后输入在 Heroku
注册的帐号和密码进行登录。Git 会检测是否有 SSH 密钥,如果有,则使用此密钥并上传,如果没有,则创建一个密钥并上传。
Tips:SSH 密钥通常用于授予用户访问服务器的权限。可将它们用于某些配置中,以便无需密码即可访问服务器。许多 PaaS 提供商都使用了此功能。
在工程的根目录下新建一个 Procfile 文件,添加如下内容:
web: node app.js
Procfile 文件告诉了服务器该使用什么命令启动一个 web
服务,这里我们通过 node app.js
执行 Node
脚本。为什么这里声明了一个 web
类型呢?官方解释为:
The name “web” is important here. It declares that this process type will be attached to the HTTP routing stack of Heroku, and receive web traffic when deployed.
打开 Git Bash ,输入:
$ git init
$ git add .
$ git commit -m "init"
$ git remote add heroku git@heroku.com:yourAppName.git
注意:将 yourAppName 修改为你自己的应用名。
在 push 到 heroku 服务器之前,我们还需要做一个工作。由于我国某些政策的原因,我们需到~/.ssh/ 目录下,新建一个 config 文件,内容如下:
Host heroku.com
User yourName
Hostname 107.21.95.3
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
port 22
然后回到 Git Bash ,输入:
$ git push heroku master
稍等片刻即上传成功。现在你就可以访问 http://yourAppName.herokuapp.com/ 了,
几个容易引起错误的地方:
Uploading SSH public key ... failed! 错误,折腾了一天,还是找不出原因。
所幸的是问题最终解决了,只是本人还是菜鸟,还弄不明白其中的原因,故作此记录。
为了排除错误,我不断尝试Google上的各种方法,
其中尝试直接使用 ssh-keygen -t rsa 和 heroku keys:add 命令重新创建和添加秘钥,但结果依然报错。
但神奇的是,后来使用以下命令格式,问题便解决了
ssh-keygen -t rsa -C "giordano.scalzo[at]gmail.com" -f ~/.ssh/id_rsa_heroku
ssh-add ~/.ssh/id_rsa_heroku
heroku keys:add ~/.ssh/id_rsa_heroku.pub
push过程中, 首要的错误提示是:"Heroku push rejected, no Cedar-supported
app detected**
"
Google了下, 找到懂得决的办法, 原文链接:http://stackoverflow.com/questions/8361475/heroku-push-rejected-no-cedar-supported-app-detected
失足的原因可能是, 因为还是空项目, 而我即将上传的代码中只有html和js文件,Heroku无法探测出项目类型,所以它不知道应当把我的App设置为哪种景象.
所以我们的项面前目今须要一些特点文件来指明我们的项目景象类型:
PHP: index.php
Python: requirements.txt
Ruby: Gemfile
Node.js: package.json
等等.
当然,我也不知道若是项目中包含了以上好几个文件会怎么样, 没试过。
因为我的项目景象须要的是PHP, 所以我在项面前目今又建了个空的index.php, 然后再次履行了上方的3个步调, 果真push成功了.
经由过程号令 heroku logs --tail 查看运行日记发明如下错误:
2013-11-30T18:22:28.183759+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path=/favicon.ico host=项目名.herokuapp.com fwd="64.120.6.170" dyno= connect= service= status=503 bytes=
经由过程查看Heroku的error code文档 : https://devcenter.heroku.com/articles/error-codes
错误code=H14 --> H14 - No web dynos running
文档中意思是说, 我没有为这个App分派至少一个Web Dyno, 解决办法:应用这个号令 "heroku ps:scale web=1" 分派一个Web Dyno.
然后再打开, 就可以正常看到我index.html内容了.
Heroku 老牌云空间的部署方法,布布扣,bubuko.com
标签:des style blog class c code
原文地址:http://www.cnblogs.com/fly-dog/p/3739200.html