APJP代理翻墙教程:PHPFog平台使用指导
APJP一个PHP/JAVA代理实现,用来翻墙安全、免费、稳定效果不错,在继PHP/GAE支持后又支持了JELASTIC、CloudFoundry、Heroku、DotCloud和OpenShift几个云平台。这次@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操作演示的,抱歉各位!)
文件
- 点击即下载,但此处下载不保证为最新程序。推荐使用最新的,http://code.google.com/p/apjp/downloads/list
- 安装Java, Java官方最新版下载: http://www.java.com/zh_CN/download/manual.jsp
PHPFog简介
创建帐号
首先到 https://phpfog.com/ 注册一个帐号
创建App
- Domain 已被使用,换!
- 创建成功,仍需要等待1分钟左右! 此时界面略显灰色!
- 等绿色Status:Running,成功!
生成SSH密钥
- 注意:generating_a_ssh_key 稍等几天,如有需要,有时间我会翻译此文的!
- 查看有无 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”
其他
- 省略点,如有问题,请自行参阅InstallGuideOnGAE和ApjpFaq
- PHPFog 支持PHP,仍可运行APJP,但其速度和免费配额都相当的不如意。APJP可以运行于PHP主机,支持PHP的PaaS,支持Java的PaaS。lol
- 每个PaaS上部署APJP,基本都不一样。没有精力和时间都去尝试部署,然后写WIKI指导。
- 之所以写的如此详细,又冗长,纯粹是为了照顾没有技术的。但并不意味着,没一点技术,就能部署成功的!Google永远都是你的好助手!
- 如果个人使用的话,最多部署GAE和其他一个PaaS平台足以。没必要都去尝试部署。恳请善用这些免费资源!!!
========
APJP官网:http://code.google.com/p/apjp/
APJP的相关问题可以在 http://code.google.com/p/apjp/issues/list 讨论,也可以在推特上@ jvansteirteghem(软件开发者)或@twfcc、@gkmuse(Wiki维护者)咨询,感谢软件开发者为大家提供这么强大软件,感谢Wiki维护者为大家带来这么详细的教程。
解决!不是UTORRENT,而是另外一个家伙在使用10000口,谢谢。
“另一个家伙”指?
方便其他的APJP用户万一出现类似的问题。
没有开启UTORRENT。不怕您笑话,之前连UTORRENT干什么用的都不知道,刚查过BAIDU才知道。我在其他电脑上使用APJP,申请的是免费网页空间,也是没有14个OK,同上,CHROME代理设置成127.0.0.1:11080,可翻〈——〉墙,但APJP的版本是093之前的那个版本。
谢谢!!
開啟了uTorrent?
楼主辛苦!
按博文弄的,执行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
请按任意键继续. . .
to w_gg_w: 是否同时在使用uTorrent?
没有啊!
没辙了。
一理明,百理通。其实这些平台都大同小异,无非就是开通app,上传服务端。
php版的无论在那个平台,下载速度都不理想,很难看视频。
主推jelastic,跟gae相比,视频几乎秒开,不用等缓存1-2mk。
另外,APJP.properties里把log_livel改为0(就是不记录任何log),会剩下不少内容,特别是运行久了。
会省下不少内存
如果将APJP.properties中LOGGER_LEVEL全设为0,没有log的话,万一出现点问题,将会很难发现问题的。
况且只节省 一点点的内存(现在的电脑上很难发现那节省下的一点点内存的)。
如果真的想节省点,熟悉计算机方面的人,可设LOGGER_LEVEL=1。
如果哪个小白看到你的回复,又大胆尝试出现问题,APJP的Issues,就出现一些相当无厘头的问题,很难解决的。
像Android设备上已经默认设置LOGGER_LEVEL=1的。
此文,有点问题,有多种解决方法。
给我点时间试试那种最简单!
APJP現在支持的平台很多,用意是多些選擇,不一定要全部折騰的啊。當然那些喜歡折騰的geek們是例外。哈哈
我個人建議選擇一兩個服務器平台其實足夠個人使用。選擇的準則要看自己的需求和該地區的網絡情況,一般來說GAE
在天朝普遍速度較佳,如果上傳文件為主要目的,PHP和其他PaaS云平台較GAE合適,上傳流量沒有GAE的限制,PHP平台是APJP最初的服務器平台,好處是分散,隱閉性相對於PaaS云平台高出
還剩4個沒填..算了!不填了!等有更好資源再說.. !現在下載東西和觀看視頻應該滿足了.. 就是把東西上傳到網盤有點不給力.. 或許下次更新應該調下上傳速度 adsl
作一些补充,建议类似我的云主机苦手仔细阅读。
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时的安全性,请自己权衡吧
关于”2. 黑窗口输命令的问题:”,WIKI内容已更新。
请博主也更新一下!
要去上课了的,晚上我再看看细看一下,WIKI的哪些内容,还需要添加一点!
要是能多点你这样的反馈,我就可以轻松许多的。:P
感謝補充資料,可以把部份內容引入APJP的FAQ去嗎?APJP不管http/https連接都已加密,如果http連接速度較好,就
可以引用,没问题。
另外还有问题请教:就是我部署在这个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开头的链接
将导入浏览器中旧的APJP证书删掉,换新的。详细请参阅InstallGuideOnGAE最后部分。
对于”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
感谢楼主,感谢作者这么辛苦提供好的方法,虽然跟复杂但还是义无反顾的支持。
博主,一直在关注你的博客,请问你有www.freecanadavpn.com的密码吗,我的twitter号是refine397,已加关注,祝你的博客越办越好。
感谢支持,不过这个我没有啊