博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Heroku 老牌云空间的部署方法
阅读量:7121 次
发布时间:2019-06-28

本文共 3236 字,大约阅读时间需要 10 分钟。

今天研究了 2小时解决了 免费云空间的问题

这篇文章的主角就是Heroku,他的基本服务都是免费的,并且是无限流量,无限空间,最大的优点就是支持git,支持一键部署,这里鄙视下百度云空间,所有服务都是收费的,在中国这么穷B的国度,不知道此策略能得到大家认可么?

 

进入主题

Heroku 很多人不知道,因为这个平台是主推Rails服务的,但是它也是完美的能兼容以下几种平台

Ruby

PHP

NODE.JS

HTML

但是这个平台为什么是免费呢?因为它最主要的利润来源是数据库服务

memcache addons 

这个是一个服务商的收费标准,很贵吧?

部署到 Heroku

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 Toolbelt

Heroku 官方提供了 Heroku Toolbelt 工具更方便地部署和管理应用。它包含三个部分:

  • Heroku client :创建和管理 Heroku 应用的命令行工具
  • Foreman :一个在本地运行你的 app 的不错的选择
  • Git :分布式版本控制工具,用来把应用推送到 Heroku

Heroku Toolbelt 下载地址: 。

注意:假如你的电脑上已经安装了 Git ,那么在安装的时候选择 Custom Installation 并去掉安装 Git 的选项,否则选择 Full Installation 。

安装成功后,打开 Git Bash ,输入 heroku login ,然后输入在 Heroku 注册的帐号和密码进行登录。Git 会检测是否有 SSH 密钥,如果有,则使用此密钥并上传,如果没有,则创建一个密钥并上传。

Tips:SSH 密钥通常用于授予用户访问服务器的权限。可将它们用于某些配置中,以便无需密码即可访问服务器。许多 PaaS 提供商都使用了此功能。

Procfile

在工程的根目录下新建一个 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.comUser yourNameHostname 107.21.95.3PreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsaport 22

然后回到 Git Bash ,输入:

$ git push heroku master

稍等片刻即上传成功。现在你就可以访问  了,

几个容易引起错误的地方:

 

 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内容了.

转载于:https://www.cnblogs.com/fly-dog/p/3739200.html

你可能感兴趣的文章
常用网站整理
查看>>
使用xorm和beego快速生成REST-API应用(只写了一半的文章)
查看>>
OpenGL函数思考-glOrtho
查看>>
啥是JSONP---转
查看>>
JPA注解记录
查看>>
调试U-Boot笔记(四)
查看>>
读完这100篇论文 就能成大数据高手
查看>>
overflow:scroll 在 iOS上滑动不流畅问题解决办法
查看>>
db2 数据库基本操作
查看>>
JSONObject与JSONArray的使用(详细)
查看>>
Nginx+Tomcat动静分离及Nginx优化
查看>>
heroku全体验
查看>>
MySQL高级查询
查看>>
安装Oracle,Enterprise Manger配置失败
查看>>
zuul源码分析--Filter注册
查看>>
jquery mobile + sae开发手记
查看>>
利用函数的惰性载入提高 javascript 代码性能
查看>>
PHP乱码
查看>>
iOS label中间加横线的实现
查看>>
golang调用ping命令出现too many open files
查看>>