APJP代理翻墙教程:PHPFog平台使用指导

2012年3月6日 | 分类: 翻墙利器 | 标签: , , ,

APJP一个PHP/JAVA代理实现,用来翻墙安全、免费、稳定效果不错,在继PHP/GAE支持后又支持了JELASTICCloudFoundryHerokuDotCloudOpenShift几个云平台。这次@gkmuse同学又编写了部署APJP到PHPFog云平台指南,有兴趣折腾的同学可以看看啦。

另外03月02日更新APJP_LOCAL-0.9.3 和 APJP_LOCAL_ANDROID-0.3.1,重用已打开端口和线程,多线程更稳定,速度更快 ,还没有更新的同学快去下载新版吧。

下载地址:http://code.google.com/p/apjp/downloads/list

========

PHPFog平台使用指导

有能力者直接官方参照Getting Started,即可成功部署APJP

以Windows 7为例, 需要安装Git

安装Git

Git-1.7.9-preview20120201.exe 点击即官方下载

最新官方Git for Windows Downloads List

  • 方法一:双击安装程序,除了下图选项,其他一路Next!(其实和方法二相同作用)

  • 方法二:双击安装程序,一路全部Next! 然后如下图自己配置Path。

将下面一句 添加 到图中可以编辑的位置(Path是以分号”;”分隔的,所以其实需要添加两个路径的。具体视自己系统程序安装的路径)

;C:\Program Files (x86)\Git\bin;C:\Program Files (x86)\Git\cmd #Windows 64bit 默认安装路径
  • 方法三:双击安装程序,一路全部Next! 剩下所有操作均在Git Bash进行。此文只能选择性参考一下,其实区别也不算大。(我的失误,原本应该就以Git Bash操作演示的,抱歉各位!)

文件

  1. APJP_KEY-0.1.0.zip
  2. APJP_LOCAL-0.9.3.zip
  3. APJP_REMOTE-0.8.4.zip

PHPFog简介

https://phpfog.com/about

创建帐号

首先到 https://phpfog.com/ 注册一个帐号

创建App

  • Domain 已被使用,换!

  • 创建成功,仍需要等待1分钟左右! 此时界面略显灰色!

  • 等绿色Status:Running,成功!

生成SSH密钥

  • 查看有无 C:Users/user/.ssh/id_rsa 有的话,可以使用直接使用,也可选择生成新的。要想生成新的,先将旧的备份到其他地方,保证无C:Users/user/.ssh/id_rsa
  • 下面是以无C:Users/user/.ssh/id_rsa 做演示的

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

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

C:\Users\user>ssh-keygen -t rsa                                 #输入: ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/user/.ssh/id_rsa) #回车键,推荐默认保存路径。
Enter passphrase (empty for no passphrase):                     #输入SSH密钥密码,输入不显示。空表示无密码,推荐设置
Enter same passphrase again:                                    #再次输入SSH密钥密码
Your identification has been saved in /c/Users/user/.ssh/id_rsa
Your public key has been saved in /c/Users/user/.ssh/id_rsa.pub
The key fingerprint is:
46:d4:46:cr:e6:6b:23:cc:82:23:d2:40:25:6a:19:c4 user@win

  • 复制公钥,将其添加到PHPFog账户中(使用旧的SSH密钥,跳过上面的生成,直接进行下面的操作)

用文本编辑器(Notepad即可,演示使用Notepad++)打开 C:Users/user/.ssh/id_rsa.pub 复制里面所有的内容 例如:

ssh-rsa AAAAB3NaC1yc2EAAAABIwAAAQEAvw/yTMgWrXskl4uLNF0AJYVErBf007AnQet3isjCQlWR6j50luu8WrvgLU/KFhOp7AZyv8Bou+fxTYE8eXFnkjCQoBaMNvAKgsJkxSHMUHdC0JXfxXACNND8W1jXIAJSRaecfchUcxuaU0/XukYabMjxrs5k6ke1euGPgPN/FNpzIlullju8/59QMutXtAuz1cd90Jfw1wq4+UAgo7puMwBNnywhM9sLD73lvIkYVqL+6c01Wn1pbLghGG2cagGFhoO3CWREaev4CBsJSkUbt/1cp6PRBvGU0D2y8g8XR38GlQKBb6PMCU7eE4JV9lnZpGR/peRU5ElyqtzOsBlPw== user@win

生成APJP_KEY

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

编辑HTTP.properties.php 和HTTPS.properties.php

编辑APJP_REMOTE目录中的HTTP.properties.php 和HTTPS.properties.php,右键,打开方式,选择记事本(图例使用Notepad++,文本编辑器都可)打开。查找

$APJP_KEY = '';

以上述的APJP密钥作为例子,修改为

$APJP_KEY = 'FkPMd40j6vzfsEbf';

保存文件变更并离开

上传App

  • 复制Source Code
$ git clone git@git01.phpfog.com:your-app.phpfogapp.com

C:\Users\user>git clone git@git01.phpfog.com:your-app.phpfogapp.com #输入此句
Cloning into 'your-app.phpfogapp.com'...
The authenticity of host 'git01.phpfog.com (50.17.200.54)' can't be establishe

RSA key fingerprint is a6:c5:32:57:cc:21:0c:91:d0:f3:11:b7:53:eb:9f:9c.
Are you sure you want to continue connecting (yes/no)? yes          #输入"yes"(无引号)
Warning: Permanently added 'git01.phpfog.com,50.17.200.54' (RSA) to the list o
known hosts.
Enter passphrase for key '/c/Users/user/.ssh/id_rsa':               #输入SSH密钥密码,不显示
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.

  • 执行完上面操作,会生成 C:\Users\user\your-app.phpfogapp.com 文件夹,里面只有一个 index.php 文件,删掉此文件。将编辑好的HTTP.properties.php,HTTPS.properties.php和HTTP.php,HTTPS.php,四个文件放入其中

  • cd 切换到 C:\Users\user\your-app.phpfogapp.com
C:\Users\user>cd your-app.phpfogapp.com #切换到your-app.phpfogapp.com目录

C:\Users\user\your-app.phpfogapp.com>git add . #添加当前目录的所有文件到库,即*.php四个文件

C:\Users\user\your-app.phpfogapp.com>git commit -m "Are you happy? Absolutely." #自己打出此句:P
[master cf87ec5] Are you happy? Absolutely.
 Committer: unknown <user@win.(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

 4 files changed, 352 insertions(+), 0 deletions(-)
 create mode 100644 HTTP.php
 create mode 100644 HTTP.properties.php
 create mode 100644 HTTPS.php
 create mode 100644 HTTPS.properties.php

C:\Users\user\your-app.phpfogapp.com>git push #上传文件到服务器
Enter passphrase for key '/c/Users/user/.ssh/id_rsa': #输入SSH密钥密码
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 1.79 KiB, done.
Total 6 (delta 2), reused 0 (delta 0)
remote:  -----> Deploying to the cloud
To git@git01.phpfog.com:your-app.phpfogapp.com
   c0fb119..cf87ec5  master -> master

  • 成功!

编辑APJP_LOCAL/APJP.properties

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

使用

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

其他

  1. 省略点,如有问题,请自行参阅InstallGuideOnGAEApjpFaq
  2. PHPFog 支持PHP,仍可运行APJP,但其速度和免费配额都相当的不如意。APJP可以运行于PHP主机,支持PHP的PaaS,支持Java的PaaS。lol
  3. 每个PaaS上部署APJP,基本都不一样。没有精力和时间都去尝试部署,然后写WIKI指导。
  4. 之所以写的如此详细,又冗长,纯粹是为了照顾没有技术的。但并不意味着,没一点技术,就能部署成功的!Google永远都是你的好助手!
  5. 如果个人使用的话,最多部署GAE和其他一个PaaS平台足以。没必要都去尝试部署。恳请善用这些免费资源!!!

========

APJP官网:http://code.google.com/p/apjp/

APJP的相关问题可以在 http://code.google.com/p/apjp/issues/list 讨论,也可以在推特上@ jvansteirteghem(软件开发者)或@twfcc、@gkmuse(Wiki维护者)咨询,感谢软件开发者为大家提供这么强大软件,感谢Wiki维护者为大家带来这么详细的教程。

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

  1. w_gg_w
    2012年3月9日23:33

    解决!不是UTORRENT,而是另外一个家伙在使用10000口,谢谢。

    • gkmuse
      2012年3月10日14:46

      “另一个家伙”指?
      方便其他的APJP用户万一出现类似的问题。

  2. w_gg_w
    2012年3月7日15:20

    没有开启UTORRENT。不怕您笑话,之前连UTORRENT干什么用的都不知道,刚查过BAIDU才知道。我在其他电脑上使用APJP,申请的是免费网页空间,也是没有14个OK,同上,CHROME代理设置成127.0.0.1:11080,可翻〈——〉墙,但APJP的版本是093之前的那个版本。
    谢谢!!

  3. @twfcc
    2012年3月7日06:50

    w_gg_w :楼主辛苦!
    按博文弄的,执行APJP.BAT后出现下面提示,未出现理想中的14个OK。chrome代理设置成127.0.0.1:10000也不成,访问不了网页。拜托!
    apjp: START_PROXY_SERVER
    APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START
    APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START_PROXY_SERVER
    APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START_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: EXCEPTION
    APJP.ProxyServerException: PROXY_SERVER/START_PROXY_SERVER
    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: START_PROXY_SERVER: EXCEPTION
    APJP.ProxyServerException: PROXY_SERVER/START
    at APJP.ProxyServer.start(Unknown Source)
    at APJP.Main.main(Unknown Source)
    Caused by: APJP.ProxyServerException: PROXY_SERVER/START_PROXY_SERVER
    at APJP.ProxyServer.startProxyServer(Unknown Source)
    … 2 more
    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: START_PROXY_SERVER: NOT OK
    apjp: TEST_HTTP_REQUESTS
    apjp: HTTP_REQUEST/GET_HTTP_RESPONSE_MESSAGE: REQUEST: HEAD / HTTP/1.0
    apjp: HTTP_REQUEST/GET_HTTP_RESPONSE_MESSAGE: RESPONSE: HTTP/1.0 200 OK
    apjp: TEST_HTTP_REQUESTS: OK
    apjp: TEST_HTTPS_REQUESTS
    apjp: HTTPS_REQUEST/GET_RESPONSE_MESSAGE: REQUEST: HEAD / HTTP/1.0
    apjp: HTTPS_REQUEST/GET_RESPONSE_MESSAGE: RESPONSE: HTTP/1.0 200 OK
    apjp: TEST_HTTPS_REQUESTS: OK
    C:\Documents and Settings\user\******\*****\*******\APJP_LOCAL 093>pause
    请按任意键继续. . .

    開啟了uTorrent?

  4. w_gg_w
    2012年3月7日03:09

    楼主辛苦!
    按博文弄的,执行APJP.BAT后出现下面提示,未出现理想中的14个OK。chrome代理设置成127.0.0.1:10000也不成,访问不了网页。拜托!

    apjp: START_PROXY_SERVER
    APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START
    APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START_PROXY_SERVER
    APJP_LOCAL_PROXY_SERVER: PROXY_SERVER/START_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: EXCEPTION
    APJP.ProxyServerException: PROXY_SERVER/START_PROXY_SERVER
    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: START_PROXY_SERVER: EXCEPTION
    APJP.ProxyServerException: PROXY_SERVER/START
    at APJP.ProxyServer.start(Unknown Source)
    at APJP.Main.main(Unknown Source)
    Caused by: APJP.ProxyServerException: PROXY_SERVER/START_PROXY_SERVER
    at APJP.ProxyServer.startProxyServer(Unknown Source)
    … 2 more
    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: START_PROXY_SERVER: NOT OK
    apjp: TEST_HTTP_REQUESTS
    apjp: HTTP_REQUEST/GET_HTTP_RESPONSE_MESSAGE: REQUEST: HEAD / HTTP/1.0
    apjp: HTTP_REQUEST/GET_HTTP_RESPONSE_MESSAGE: RESPONSE: HTTP/1.0 200 OK
    apjp: TEST_HTTP_REQUESTS: OK
    apjp: TEST_HTTPS_REQUESTS
    apjp: HTTPS_REQUEST/GET_RESPONSE_MESSAGE: REQUEST: HEAD / HTTP/1.0
    apjp: HTTPS_REQUEST/GET_RESPONSE_MESSAGE: RESPONSE: HTTP/1.0 200 OK
    apjp: TEST_HTTPS_REQUESTS: OK

    C:\Documents and Settings\user\******\*****\*******\APJP_LOCAL 093>pause
    请按任意键继续. . .

    • @twfcc
      2012年3月7日09:05

      to w_gg_w: 是否同时在使用uTorrent?

      • w_gg_w
        2012年3月9日22:38

        没有啊!

        没辙了。

  5. 天生多疑
    2012年3月6日15:51

    一理明,百理通。其实这些平台都大同小异,无非就是开通app,上传服务端。
    php版的无论在那个平台,下载速度都不理想,很难看视频。
    主推jelastic,跟gae相比,视频几乎秒开,不用等缓存1-2mk。
    另外,APJP.properties里把log_livel改为0(就是不记录任何log),会剩下不少内容,特别是运行久了。

    • 天生多疑
      2012年3月6日15:53

      天生多疑 :会剩下不少内容

      会省下不少内存

      • gkmuse
        2012年3月6日17:06

        如果将APJP.properties中LOGGER_LEVEL全设为0,没有log的话,万一出现点问题,将会很难发现问题的。
        况且只节省 一点点的内存(现在的电脑上很难发现那节省下的一点点内存的)。
        如果真的想节省点,熟悉计算机方面的人,可设LOGGER_LEVEL=1。
        如果哪个小白看到你的回复,又大胆尝试出现问题,APJP的Issues,就出现一些相当无厘头的问题,很难解决的。
        像Android设备上已经默认设置LOGGER_LEVEL=1的。

  6. gkmuse
    2012年3月6日12:27

    此文,有点问题,有多种解决方法。
    给我点时间试试那种最简单!

  7. @twfcc
    2012年3月6日11:39

    APJP現在支持的平台很多,用意是多些選擇,不一定要全部折騰的啊。當然那些喜歡折騰的geek們是例外。哈哈
    我個人建議選擇一兩個服務器平台其實足夠個人使用。選擇的準則要看自己的需求和該地區的網絡情況,一般來說GAE
    在天朝普遍速度較佳,如果上傳文件為主要目的,PHP和其他PaaS云平台較GAE合適,上傳流量沒有GAE的限制,PHP平台是APJP最初的服務器平台,好處是分散,隱閉性相對於PaaS云平台高出

    • zhishibunenggaibian
      2012年3月6日13:01

      還剩4個沒填..算了!不填了!等有更好資源再說.. !現在下載東西和觀看視頻應該滿足了.. 就是把東西上傳到網盤有點不給力.. 或許下次更新應該調下上傳速度 adsl

  8. Ben
    2012年3月6日11:30

    作一些补充,建议类似我的云主机苦手仔细阅读。

    1. XP用户的本地路径问题:

    在“生成ssh密钥”这一步时,作者是以win7为例的,叫大家查看“C:\Users\user\.ssh\id_rsa”这个文件
    XP用户,对应的路径是在“C:\Documents and Settings\dell5200\.ssh”(我的电脑用户名叫dell5200,你的可能不一样的)

    并且,没有安装过Git的用户是找不到这个.ssh文件夹的
    注:Git是这个角php fog的云主机空间的代码部署客户端

    2. 黑窗口输命令的问题:
    教程中进行到“上传App”这一步时,作者是在cmd窗口里面输命令的。
    而我部署时,按作者那样操作没有作用(我猜测作者使用的Git的版本不一样)
    我是在安装Git之后,从开始菜单→所有程序→Git→Git Bash进入Git自己的黑窗口来输入命令的
    (这个Git的黑窗口有点诡异,要复制粘贴字符串,必须在黑窗口的标题栏上点右键,才会找得到复制粘贴命令)

    Git Bash的相关问题请参考这个链接来操作:(只需要参考前3步,后面从“4. Add your SSH key to GitHub.”开始的内容都可以不看了)
    http://help.github.com/win-set-up-git/
    注意当参考上面这个链接,进行到“Now you need to enter a passphrase.”这一步时
    叫你输入的“passphrase”,就是后面作者在教程中提到“#输入SSH密钥密码”时要输入的东西

    3. 应用的名字问题
    请看到“生成SSH”那个步骤,在“Add your SSH public key”那张截图上面,有个nickname,作者填的是“apjp”
    但是我填的是其他名字(myname)
    注意了,如果你和我一样,填nickname时填得和教程不一样的话,那么到了“编辑APJP_LOCAL/APJP.properties”这一步时,打开APJP_LOCAL/APJP.properties除了按照教程要求填写三个红框的内容之外,还必须把这个文件的第4行“APJP_LOGGER_ID=”(此行未出现在作者的截图中)这里填成和前面的nickname一样的名字(myname),否则APJP本地客户端无法正常运行的!
    由于作者在教程里没有提到这个起名字的问题,我就栽这里了,卡了好久最后才发现APJP上不了是这个名字闹的…

    4. http/https的问题
    还是在“编辑APJP_LOCAL/APJP.properties”这一步,作者填两个php文件的路径都是https开头的
    我实际测试了下,填成http可能速度要快一些,打开这个博客的首页,如果填成https要卡半天。
    但是这样做,会牺牲本级数据传输到phpfog时的安全性,请自己权衡吧

    • gkmuse
      2012年3月6日13:51

      关于”2. 黑窗口输命令的问题:”,WIKI内容已更新。

      请博主也更新一下!

      要去上课了的,晚上我再看看细看一下,WIKI的哪些内容,还需要添加一点!

      要是能多点你这样的反馈,我就可以轻松许多的。:P

    • @twfcc
      2012年3月6日13:56

      感謝補充資料,可以把部份內容引入APJP的FAQ去嗎?APJP不管http/https連接都已加密,如果http連接速度較好,就

      • Ben
        2012年3月6日14:19

        可以引用,没问题。

        另外还有问题请教:就是我部署在这个phpfog平台上的APJP不能访问https的链接
        提示错误:

        APJP.HTTP11.HTTPRequestException: HTTP_REQUEST/GET_HTTP_RESPONSE_MESSAGE
        at APJP.HTTP11.HTTPRequest.getHTTPResponseMessage(Unknown Source)
        at APJP.HTTP.HTTPServerWorker.process(Unknown Source)
        at APJP.HTTP.HTTPServerWorker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL:http://××××××.phpfogapp.com/HTTP.php
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        … 4 more

        部署在dotcloud上面的也有类似问题,只能正常浏览http开头的链接

        • gkmuse
          2012年3月6日17:08

          将导入浏览器中旧的APJP证书删掉,换新的。详细请参阅InstallGuideOnGAE最后部分。

    • gkmuse
      2012年3月6日17:24

      对于”3. 应用的名字问题”,这个真不是个问题的。
      1.我将SSH Public Key删掉,也是可以运行部署于PHPFog的APJP的 http://clip2net.com/clip/m96404/1331025270-clip-38kb.jpg

      2.我将其设为APJP_LOGGER_ID=gkmuse或者任意的什么,都不影响APJP的 http://clip2net.com/clip/m96404/1331025426-clip-18kb.png

      3.我还特意咨询了APJP的作者的,应用的名字可随意设置,APJP_LOGGER_ID=××也可随意。不会导致APJP无法运行的。

      4.对于3.,我只是说说而已。有些东西不能随意设置的。我写的文章,多少都有测试好几遍的,才推荐较好的设置的。对于小白而言,还是最好尽量照搬。计算机高手(指自己可以解决自己出现的问题的)才可随意的。

      5.所以你的问题,具体原因未知。信息较少,无法判断。但能用就好了嘛! :P

  9. freezage
    2012年3月6日11:23

    感谢楼主,感谢作者这么辛苦提供好的方法,虽然跟复杂但还是义无反顾的支持。

  10. 匿名
    2012年3月6日11:15

    博主,一直在关注你的博客,请问你有www.freecanadavpn.com的密码吗,我的twitter号是refine397,已加关注,祝你的博客越办越好。

    • iGFW
      2012年3月6日13:09

      感谢支持,不过这个我没有啊