My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
InstallGuideOnHeroku  

Heroku平台使用指导

以Windows 7为例,Linux / Mac上的区别,会指出的

Heroku简介

http://en.wikipedia.org/wiki/Heroku

创建帐号

首先到 https://api.heroku.com/signup 注册一个帐号

输入你的邮箱帐号,接着提示“确认信已经寄出,查看邮箱为一下步”

收到确认信后,点击里面的确认连接

点击确认链接后,会进入Heroku输入密码的页面,输入注册的的密码两次

随后会转到My Apps界面,注册成功!

安装Heroku Toolbelt

下载Heroku Toolbelt程序 http://assets.heroku.com/heroku-toolbelt/heroku-toolbelt.exe

安装程序,双击一路Next即可。

运行命令提示符 快捷键【Windows徽标键+R】,弹出运行程序->输入:“cmd” ->

点击“确定”->弹出命令提示符

执行以下指令,#后面为注释

C:\Users\user>heroku login                            #登录
Enter your Heroku credentials.                        #输入你的Heroku凭证
Email: adam@example.com                               #输入你的邮箱
Password:                                             #输入密码,不显示
Could not find an existing public key.                #找不到以存在的公钥
Would you like to generate one? [Yn]                  #你想要生成一个吗?[Yes/No],Yes继续
Generating new SSH public key.                        #生成新的SSH公钥
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub  #上传SSH公钥

Linux / Mac 自己研究一下哈 http://devcenter.heroku.com/articles/quickstart

文件

  1. APJP_KEY-0.1.0.zip
  2. APJP_LOCAL-0.9.3.zip
  3. APJP_REMOTE_HEROKU-0.1.0.zip

生成Key

转到APJP_KEY目录,双击APJP_KEY.bat(Linux上运行APJP_KEY.sh),会显示一个APJP的密钥,类似APJP_KEY=FkPMd40j6vzfsEbf

编辑APJP.properties文件

编辑APJP_REMOTE_HEROKU\src\main\resources\APJP.properties文件,右键,编辑(文本编辑器:Notepad即记事本即可。示例中使用Notepad++),打开文件,第一行,填写APJP_KEY.bat生成的Key。示例中KEY=FkPMd40j6vzfsEbf

APJP_KEY=FkPMd40j6vzfsEbf

保存变更,离开

上传App

运行命令提示符 ,cd 转到APJP_REMOTE_HEROKU目录,执行以下指令,一次一条

heroku login
git init
git add .
git commit -m "init"
heroku create --stack cedar
git push heroku master
heroku open

执行最后一个指令,打开浏览器,成功!

  • 复制浏览器中的地址

编辑APJP_LOCAL/APJP.properties

编辑APJP_LOCAL/APJP.properties,右键,打开方式,选择记事本(图例使用Notepad++,文本编辑器都可)打开。

详细的配置作用RoleOfConfigurations

使用

双击APJP_LOCAL/APJP.bat(Linux / Mac 运行APJP.sh),会看到APJP在自行测试连接服务器的讯息,如果正常会有12个“OK”

这表示APJP已经运行并连上服务器,但需要在浏览器进行简单设定,数据会经由APJP服务器流通

  • 在Firefox中代理选项中,设置HTTP PROXY 为127.0.0.1 端口为10000,SSL PROXY也是127.0.0.1 端口10000
  • IE Internet设置->连接->局域网设置(L)其旁边的一段话【LAN设置不应用到拨号连接。对于拨号设置,单击上面的“设置”按钮】,如需设置和局域网设置(L)一样。->勾选“为LAN使用代理服务器”地址:127.0.0.1 端口:10000

补充

APJP为web tunnel的实现,对于HTTPS连接会出现证书警告

例:

故在APJP_LOCAL-0.8.4版本,增加IAIK_JCE.jar并会随机生成APJP.pem导入浏览器内可解决证书警告问题。

以下为Windows 7版 Google Chrome的导入方法:

  • 首先运行APJP_LOCAL/APJP.bat,设置好浏览器代理,打开https://www.google.com/ncr (或者其他任何 https:// URL),出现证书警告。同时APJP_LOCAL目录中生成APJP.pem 和APJP.jks,接着如下操作:

a.选项(O)->高级设定->HTTPS/SSL->证书管理(Chrome调用的是系统的证书,即IE上不需要再导入证书)

b.点击“证书管理”->选择“受信任的证书颁发机构”->点击“导入(I)”

c.打开并指向APJP_LOCAL/APJP.pem

e.其他浏览器例如:Firefox设置导入证书大致相同

  • 注意 : 每次更新APJP,都要删掉上次APJP的证书文件,再导入APJP.pem。因为证书是运行程序后自己生成的,具有唯一性。
Comment by zhung...@gmail.com, Feb 1, 2012

C:\Documents and Settings\Administrator>git push heroku master Warning: Permanently added the RSA host key for IP address '50.19.85.132' t

list of known hosts.
error: src refspec master does not match any. error: failed to push some refs to 'git@heroku.com:glowing-cloud-3525.git'

我在部署试出现了这样的错误,请问怎么解决?

Comment by project member twf...@gmail.com, Feb 2, 2012

沒有正確生成 .ssh/id_rsa 證書或 .id_rsa.pub 證書,可把 .git 去除重新執行部署

Comment by Wall...@gmail.com, Feb 10, 2012

d:\>cd ap

d:\AP>git init Initialized empty Git repository in d:/AP/.git/

d:\AP>git add .

d:\AP>git commit -m "init" (root-commit) 614a9c3? init

Committer: unknown <i@-PC.(none)>
Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly:

git config --global user.name "Your Name" git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

git commit --amend --reset-author
21 files changed, 1570 insertions(+), 0 deletions(-) create mode 100644 .gitignore create mode 100644 IMPORTANT.txt create mode 100644 Procfile create mode 100644 README.txt create mode 100644 pom.xml create mode 100644 src/main/java/APJP/HTTP/HTTPServlet.java create mode 100644 src/main/java/APJP/HTTP11/HTTPMessage.java create mode 100644 src/main/java/APJP/HTTP11/HTTPMessageException.java create mode 100644 src/main/java/APJP/HTTP11/HTTPMessageHeader.java create mode 100644 src/main/java/APJP/HTTP11/HTTPMessageHeaders.java create mode 100644 src/main/java/APJP/HTTP11/HTTPRequest.java create mode 100644 src/main/java/APJP/HTTP11/HTTPRequestException.java create mode 100644 src/main/java/APJP/HTTP11/HTTPRequestMessage.java create mode 100644 src/main/java/APJP/HTTP11/HTTPResponseMessage.java create mode 100644 src/main/java/APJP/HTTP11/HTTPSRequest.java create mode 100644 src/main/java/APJP/HTTP11/HTTPSRequestException.java create mode 100644 src/main/java/APJP/HTTPS/HTTPSServlet.java create mode 100644 src/main/java/APJP/Main.java create mode 100644 src/main/resources/APJP.properties create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100644 src/main/webapp/index.html

d:\AP>heroku create --stack cedar Creating pure-earth-4892... done, stack is cedar http://pure-earth-4892.herokuapp.com/ | git@heroku.com:pure-earth-4892.git Git remote heroku added

d:\AP>git push heroku master Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the

list of known hosts.
Permission denied (publickey). fatal: The remote end hung up unexpectedly

d:\AP>heroku open Opening http://pure-earth-4892.herokuapp.com/

d:\AP>不成功

Comment by project member goknm...@gmail.com, Feb 10, 2012

@zhunglei

“C:\Documents and Settings\Administrator>”注意你的操作目录。“cd 转到APJP_REMOTE_HEROKU目录”,这句不懂吗?

参考一下,此图。实在不懂Google是你的好帮手的。

@Wallpoy

从你的操作没有看到执行“heroku login”的呢?当然如果已经上传好SSH好密钥是不需要执行的。确保之前的操作没有错误,还是再执行一遍。 如果不能解决你的问题,请先参见以下两个地址。 http://devcenter.heroku.com/articles/quickstart#step_3_login http://stackoverflow.com/questions/4269922/permission-denied-publickey-when-deploying-heroku-code-fatal-the-remote-end 大致意思:1.确保已经生成SSH密钥的。简单确定方法,重新执行生成SSH密钥一遍。2.如果确定生成了的。而且还是无效的话。再执行下面的指令:“heroku keys:add ~/.ssh/id_rsa.pub”(没有引号)

以上两位,如果按照操作能解决你们的问题,请反馈一下。谢。 万一不幸没有解决的话,继续来问的是呢。如果能更详细的描述的你的问题,会更快知道,问题出在哪里的,方便解决问题。

Comment by zage12...@gmail.com, Feb 13, 2012

C:\Users\user>heroku login #登录 Enter your Heroku credentials. #输入你的Heroku凭证 Email: adam@example.com #输入你的邮箱 Password: #输入密码,不显示 Could not find an existing public key. #找不到以存在的公钥 Would you like to generate one? Yn? #你想要生成一个吗?[Yes/No],Yes继续 Generating new SSH public key.

停到这就不动了,不知道是什么原因?如果回车的话会出现下面的提示: Uploading ssh public key C:/Users/Administrator/.ssh/id_rsa.pub e:/Program Files (x86)/Heroku/lib/heroku/auth.rb:195:in `read': No such file or directory - C:/Users/Administrator/.ssh/id_rsa.pub (Errno::ENOENT)

from e:/Program Files (x86)/Heroku/lib/heroku/auth.rb:195:in `associate
key'
from e:/Program Files (x86)/Heroku/lib/heroku/auth.rb:168:in `associate
or_generate_ssh_key'
from e:/Program Files (x86)/Heroku/lib/heroku/auth.rb:155:in `check_for
associated_ssh_key'
from e:/Program Files (x86)/Heroku/lib/heroku/auth.rb:150:in `ask_for_an
d_save_credentials'
from e:/Program Files (x86)/Heroku/lib/heroku/auth.rb:71:in `get_credent
ials'
from e:/Program Files (x86)/Heroku/lib/heroku/auth.rb:19:in `login' from e:/Program Files (x86)/Heroku/lib/heroku/command/auth.rb:12:in `log
in'
from e:/Program Files (x86)/Heroku/lib/heroku/command.rb:129:in `run' from e:/Program Files (x86)/Heroku/lib/heroku/cli.rb:9:in `start' from e:/Program Files (x86)/Heroku/heroku:28:in `<main>'
反复安装了Heroku Toolbelt程序也没有解决问题。

Comment by project member goknm...@gmail.com, Feb 13, 2012

@zage12038 1."Generating new SSH public key.Uploading ssh public key /Users/adam/.ssh/id_rsa.pub " 这步视网络情况好坏可能需要较长的时间的,超过5分钟的话,就是不正常的,可能是网络受到干扰的

2.查看一下有无生成SSH密钥,路径"C:/Users/Administrator/.ssh/id_rsa.pub"。有可能是隐藏文件。如果生成,直接执行“heroku keys:add ~/.ssh/id_rsa.pub”(没有引号) 即可。未生成的话,只好再重新执行的。

3.你的Heroku Toolbelt应该是正常安装了的。Heroku Toolbelt自己会安装一些支持其工作的开源的程序,安装时需要较长的时间的,但我在实体机和虚拟机,皆一次就成功安装的。

4.我11号晚上,又重新生成SSH密钥,再上传一个App的。上传密钥时,有时网络情况差,就没有成功的。过了一个多小时后,再试才成功的!

5.即使APJP成功部署于Keroku,现在有时也会出现问题的。使用在GAE上的那招有效。

Comment by zage12...@gmail.com, Feb 13, 2012

路径"C:/Users/Administrator/.ssh/id_rsa.pub"。这个查了一下,查不到,好像是没有生成,我再试一试吧,谢谢您。

Comment by Wall...@gmail.com, Feb 21, 2012

密匙的问题 添加了一条heroku keys:add命令 ok啦 多谢提示

Comment by project member goknm...@gmail.com, Feb 21, 2012

1.“heroku keys:add ~/.ssh/id_rsa.pub”(没有引号) 此句是Linux上的Terminal的操作。我也不熟悉命令行下操作的,最近才发现其问题的。Windows下,应该就如你所说。

2.我并没有出现此问题,也是Google帮你找可能出现问题的原因及解决办法的。所以只能算是个参考意见的。

Comment by wae...@gmail.com, Feb 25, 2012

APJP: PROXY_SERVER/START APJP_LOCAL_PROXY_SERVER: HTTP_PROXY_SERVER/START APJP_LOCAL_HTTP_PROXY_SERVER: HTTP_SERVER/START APJP_LOCAL_HTTP_SERVER: HTTP_SERVER/START APJP_LOCAL_HTTP_SERVER: HTTP_SERVER/START OK APJP_LOCAL_HTTP_PROXY_SERVER: HTTP_SERVER/START OK APJP_LOCAL_HTTP_PROXY_SERVER: HTTP_PROXY_SERVER/START APJP_LOCAL_HTTP_PROXY_SERVER: HTTP_PROXY_SERVER/START OK APJP_LOCAL_PROXY_SERVER: HTTP_PROXY_SERVER/START OK APJP_LOCAL_PROXY_SERVER: HTTPS_PROXY_SERVER/START APJP_LOCAL_HTTPS_PROXY_SERVER: HTTPS_PROXY_SERVER/START APJP_LOCAL_HTTPS_PROXY_SERVER: HTTPS_PROXY_SERVER/START OK APJP_LOCAL_PROXY_SERVER: HTTPS_PROXY_SERVER/START OK APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START APJP_LOCAL_PROXY_SERVER: EXCEPTION java.net.BindException?: Address already in use: JVM_Bind

at java.net.PlainSocketImpl?.socketBind(Native Method) at java.net.PlainSocketImpl?.bind(Unknown Source) at java.net.ServerSocket?.bind(Unknown Source) at java.net.ServerSocket?.bind(Unknown Source) at APJP.ProxyServer?.startProxyServer(Unknown Source) at APJP.ProxyServer?.start(Unknown Source) at APJP.Main.main(Unknown Source)
APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START NOT OK APJP: EXCEPTION APJP.ProxyServerException?: PROXY_SERVER/START
at APJP.ProxyServer?.startProxyServer(Unknown Source) at APJP.ProxyServer?.start(Unknown Source) at APJP.Main.main(Unknown Source)
Caused by: java.net.BindException?: Address already in use: JVM_Bind
at java.net.PlainSocketImpl?.socketBind(Native Method) at java.net.PlainSocketImpl?.bind(Unknown Source) at java.net.ServerSocket?.bind(Unknown Source) at java.net.ServerSocket?.bind(Unknown Source) ... 3 more
APJP: PROXY_SERVER/START NOT OK APJP: HTTP_REQUESTS/TEST APJP_LOCAL_HTTP_SERVER: HTTP_REQUESTS/TEST APJP_LOCAL_HTTP_SERVER: REQUEST: HEAD / HTTP/1.0 APJP_LOCAL_HTTP_SERVER: RESPONSE: HTTP/1.0 200 OK APJP_LOCAL_HTTP_SERVER: HTTP_REQUESTS/TEST OK APJP: HTTP_REQUESTS/TEST OK APJP: HTTPS_REQUESTS/TEST APJP_LOCAL_HTTPS_SERVER: HTTPS_REQUESTS/TEST APJP_LOCAL_HTTPS_SERVER: REQUEST: HEAD / HTTP/1.0 APJP_LOCAL_HTTPS_SERVER: RESPONSE: HTTP/1.0 200 OK APJP_LOCAL_HTTPS_SERVER: HTTPS_REQUESTS/TEST OK APJP: HTTPS_REQUESTS/TEST OK

请问可能是哪里出错呢?谢谢。

Comment by project member goknm...@gmail.com, Feb 25, 2012

"Address already in use: JVM_Bind"

只能运行一个APJP程序。

Comment by wae...@gmail.com, Feb 25, 2012

我是只运行了一个啊。

Comment by wae...@gmail.com, Feb 25, 2012

包括GAE平台也是这样的问题。

Comment by project member goknm...@gmail.com, Feb 25, 2012

1.关闭所有Java程序,尽可能只让APJP运行,试试?

2.信息不足,很难了解,具体哪里的问题。请到Issues中详细描述你的电脑情况,即如何使用的? 操作系统?等等。附必要的截图和Log。

Comment by project member twf...@gmail.com, Feb 26, 2012

有沒有開啟uTorrent?

Comment by wae...@gmail.com, Feb 26, 2012

有用uTorrent,有影响吗?

Comment by project member goknm...@gmail.com, Feb 26, 2012

有。请看常见问题,最后的综合常见问题,倒数第三个。 https://code.google.com/p/apjp/wiki/ApjpFaq


Sign in to add a comment
Powered by Google Project Hosting