部署 APJP 到 CloudFoundry 云平台

2012年1月29日 | 分类: 翻墙相关 | 标签: , , ,

网友twfcc说上次介绍的jelastic平台看yuTube 360p不卡,不过CloudFoundry 速度最快,以下是他写的部署APJP到CloudFoundry云平台的详细教程,有兴趣的可以试试呀(文章挂国外VPN看,否则可能看不到文中图片)。

CloudFoundry平台简介

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

部署 APJP 到CloudFoundry云平台

到官网注册帐号 http://my.cloudfoundry.com/signup ,填入邮箱,同意条款,等待回邮确认,一般需要一天时间

收到确认信件,使用注册的邮箱,和官网给的密码登录

访问 http://www.rubyinstaller.org/ 下载Ruby for windows

根据CloudFoundry官网所述,Ruby版本1.8.7和1.9.2都支援,Ruby 1.9.3-p194也可,选取Ruby 1.9.2-p290下载

下载後双击打开安装

按下一个,选取其中两项,不需安装 Ruby/TK

等待安装完成

下载 APJP_REMOTE_DOTCLOUD 最新版本, 解开压缩文件,转到APJP_REMOTE_DOTCLOUD目录 目录內有ROOT.war文件,解开

於当前目录释放文件,得到index.html, META-INF和WEB-INF两个目录

转到WEB-INF目录,编辑APJP.properties的KEY栏位,KEY可往项目下载栏下载产生KEY的程序
http://apjp.googlecode.com/files/APJP_KEY-0.1.0.zip

完成後存档,可把原来的ROOT.war和Readme.txt删除,将index.html, META-INF和WEB-INF两个目录压缩为ROOT.zip ,然後改名为ROOT.war ,如图

点击开始 -> 所有程序 -> Ruby 1.9.2-p290 -> Start Command Prompt with Ruby 执行: gem install vmc

这时会出现一堆讯息,其中有一条显示安装成功,等待安装完成就可以

接下来执行另一条命令: vmc target api.cloudfoundry.com

命令完成後,执行命令: vmc login ,输入注册邮箱和密码

然後转到APJP_REMOTE_DOTCLOUD的目录

  • [06.11]更新, 详情请参阅Issues 74 and Issues 73.(此次更新WIKI, 和写此文的人使用不同OS, 截图和之前略有不同.)

执行: vmc push <App_Name> , <App_Name> 是随意选取的名字,例如 anotherhappyday

接着只需默认设置, 即直接点击”Enter”键, 7次, 就可成功部署APJP到CloudFoundry

  • vmc delete <App_Name> 是删除已部署的App

设置APJP_LOCAL本地客户端

编辑APJP_LOCAL\APJP.properties, 找到APJP_KEY= 填入和上传到服务器相同的KEY

往下找到APJP_REMOTE_HTTP_SERVER_1_REQUEST_URL= 填入 https://yourapp.cloudfoundry.com/HTTP

再往下找到APJP_REMOTE_HTTPS_SERVER_1_REQUEST_URL= 和上述一样,只是变为HTTPS

使用Google Chrome 浏览器的插件Proxy Switchy设定代理

更详尽的设置请参考项目的其他WIKI,例如 InstallGuideOnGAE,这里不再叙述,双击D:\APJP_LOCAL\APJP.bat

访问 http://tracemyip.org 确定通过APJP代理访问互联网

返回cmd.exe窗口查看讯息

补充

鉴於国内安装vmc可能会被防火墙封锁目标网站安装失败,如果有部署APJP其他的服务器版本,开启APJP,通过APJP安装

gem install –http-proxy http://127.0.0.1:10000 vmc

或者全程通过VPN部署

APJP常见问题http://code.google.com/p/apjp/wiki/ApjpFaq

APJP项目地址http://code.google.com/p/apjp/

本文原始地址http://igfw.net/archives/7260

  1. DECEMBER
    2012年11月11日00:26

    运行ruby时出错显示Runtime error,怎样解决

    • iGFW
      2012年11月11日21:35

      这个很久没测试过了,不清楚,你可以到其项目上反馈下,或者在VPN下重复操作试试

  2. ry
    2012年10月22日16:35

    请问;执行命令: vmc login ,输入注册邮箱和密码.是邮箱的密码.还是CloudFoundry的注册密码?

    • iGFW
      2012年10月22日18:48

      当然是CloudFoundry的密码啊

  3. tri
    2012年10月21日12:32

    怎么样将index.html, META-INF和WEB-INF两个目录压缩为ROOT.zip ,然後改名为ROOT.war

    • iGFW
      2012年10月21日16:22

      解压软件解压,修改后压缩软件压缩成.zip格式后重命名为.war

  4. GUP
    2012年5月31日11:03

    请问在cloudfoundry网站上怎么开不到自己部署时写的AppID?只看到注册时编辑的AppID

    • iGFW
      2012年5月31日17:20

      cloudfoundry平台我很久前折腾过,现在懒得整了。
      你如果想搭建,遇到问题可以在推特上向@ jvansteirteghem(软件开发者)或@twfcc、@gkmuse(Wiki维护者)咨询。

  5. GUP
    2012年5月30日14:03

    我这部署成功了,速度也很不错。但是经常掉线

    • GUP
      2012年5月30日14:04

      说错了,是apjp经常突然没反应与服务器断开连接

      • iGFW
        2012年5月30日14:09

        你使用https连接试试

        • GUP
          2012年5月30日16:41

          用的就是https连接的

          • iGFW
            2012年5月30日17:03

            你在推特上问问 twfcc 吧,apjp的教程一直有他写,他比较熟悉,如果是软件问题他可以反馈给apjp软件作者修改。

  6. zage
    2012年2月2日09:35

    laysli27童鞋,你试一试先挂上VPN,然后在运行APJP,可能就正常了,原因可能是已经被咔嚓了。。。。。

    • gkmuse
      2012年6月12日16:05

      限于我没有VPN, 基本所有的APJP的部署是在没有使用VPN的情况下完成的. 但不同地区的网络环境可能不同, 有些地区可能真的需要VPN才能完成部署, 因此如果是使用VPN出现的问题, 抱歉我无法解决的. :(

  7. laysli27
    2012年2月1日14:50

    已经折腾两天两夜了,简直要发疯了
    这段报错始终存在:

    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_SERVER/TEST
    APJP_LOCAL_HTTP_SERVER: HTTP_SERVER/TEST
    APJP_LOCAL_HTTP_SERVER: EXCEPTION
    java.io.FileNotFoundException: https://********.cloudfoundry.com/http
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at APJP.HTTP.HTTPServer.test(Unknown Source)
    at APJP.Main.main(Unknown Source)
    APJP_LOCAL_HTTP_SERVER: HTTP_SERVER/TEST NOT OK
    APJP: EXCEPTION
    APJP.HTTP.HTTPServerException: HTTP_SERVER/TEST
    at APJP.HTTP.HTTPServer.test(Unknown Source)
    at APJP.Main.main(Unknown Source)
    Caused by: java.io.FileNotFoundException: https://********.cloudfoundry.com/http
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    … 2 more
    APJP: HTTP_SERVER/TEST NOT OK
    APJP: HTTPS_SERVER/TEST
    APJP_LOCAL_HTTPS_SERVER: HTTPS_SERVER/TEST
    APJP_LOCAL_HTTPS_SERVER: EXCEPTION
    java.io.FileNotFoundException: https://********.cloudfoundry.com/https
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at APJP.HTTPS.HTTPSServer.test(Unknown Source)
    at APJP.Main.main(Unknown Source)
    APJP_LOCAL_HTTPS_SERVER: HTTPS_SERVER/TEST NOT OK
    APJP: EXCEPTION
    APJP.HTTPS.HTTPSServerException: HTTPS_SERVER/TEST
    at APJP.HTTPS.HTTPSServer.test(Unknown Source)
    at APJP.Main.main(Unknown Source)
    Caused by: java.io.FileNotFoundException: https://********.cloudfoundry.com/https
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    … 2 more
    APJP: HTTPS_SERVER/TEST NOT OK

    我反复检查过的,按照教程一步都没有错,********.cloudfoundry.com 这个域名也没有被封,浏览器直接访问或者https访问都没问题,但就是不能通过APJP浏览网页

    • iGFW
      2012年2月1日17:45

      确认KEY服务器端和客户端一致吗?

      • laysli27
        2012年2月2日09:21

        嗯。。。一致的,我肯定
        我比较纠结的是这个java.io.FileNotFound 难道是我申请的账户有问题么?

        • iGFW
          2012年2月2日15:55

          这个就不清楚了,我按照教程部署没问题。

    • Ben
      2012年3月6日12:29

      这个的问题应该出在你在云主机建应用时,取的名字和配置文件里面写入的名字不一致

      CloudFoundry这个空间有点怪,当你申请成功了空间并登录
      会进入Manage页面,其中有“Manage your existing Micro Cloud Foundry domain names.”或者“Create an additional domain name for your Micro Cloud Foundry.”
      我最开始就是在这里建立了域名
      假设你建立了一个(例如bigcat.cloudfoundry.me ),那么你要小心,“bigcat”这个名字对于部署APJP是不起作用的
      也就是说按照这篇教程操作,根本不会用到bigcat这个名字,也根本用不上bigcat.cloudfoundry.me这个域名

      事实上,在教程中的“执行: vmc push YourAppID , YourAppID 是随意选取的名字”这一步
      你输入的YourAppID,才是后面APJP填配置文件时要用到的名字!

      教程中执行到“往下找到APJP_REMOTE_HTTP_SERVER_1_REQUEST_URL= 填入 ”这一步时
      你应该填入的是
      APJP_REMOTE_HTTP_SERVER_1_REQUEST_URL=https://YourAppID.cloudfoundry.com/HTTP
      而不是
      APJP_REMOTE_HTTP_SERVER_1_REQUEST_URL=https://bigcat.cloudfoundry.com/HTTP
      更不是
      APJP_REMOTE_HTTP_SERVER_1_REQUEST_URL=https://bigcat.cloudfoundry.me/HTTP

      这个子域名的名字非常关键,我第一次就是错填了“https://bigcat.cloudfoundry.com/HTTP”
      从而出现了和你一样的错误。

      注:
      如果使用了最新版的0.9.3的APJP_LOCAL
      在配置文件的第4行,还要把“APJP_LOGGER_ID=”这里也填成“YourAppID”(而不是bigcat)才行
      另外
      https://YourAppID.cloudfoundry.com/HTTP 也可填成 http://YourAppID.cloudfoundry.com/HTTP (即不使用https协议)来加快速度,但是这样将牺牲一些安全性,请自己酌情考虑

    • gkmuse
      2012年6月12日15:56

      问题原因: “Address already in use: JVM_Bind”

      抱歉最近很忙, 没时间再做重复的事情, 自己查阅APJP的WIKI, 已有解答!

评论分页