首页 > WEB, 建站教程, 我的原创 > Google App Engine申请使用步骤及上传数据的三种方法

Google App Engine申请使用步骤及上传数据的三种方法

2009年6月20日 阅读数:5,196 views

  最近由于用PHP开发了天气预报预报插件,调用的用户开始增多,考虑空间和带宽因素,试着考虑将一些必要的调用放置在免费的公用空间上,正好看到由于Google App Engine支持JAVA,而通过Quercus可以在未开放PHP语言支持的GAE上面运行PHP代码,真是一阵激动,按耐不住心情,这两天向Google App Engine申请尝试了一把,最后不免有点失望,部署上去的PHP天气预报插件没法执行,调试了半天Quercus似乎对PHP的一些函数不支持(也许是我JAVA部署的水平有限,呵呵),不过这两天的付出也很值得,至少我多了5G的空间,以后可以存放一些图片等文件,以便远程调用,减轻主WEB的压力,哈哈,估计空间商要气死了。闲话少说,详细说明下我从GAE申请到向GAE上传文件及运行PHP的步骤,网上详细说明的可不多哦,嘿嘿。

简单介绍GAE和Quercus

  Google App Engine是用Python编程语言实现的,允许一个用户免费申请10个应用,每个应用空间为500M,以为再也不需要虚拟空间的朋友可得克制下喜悦的心情,据说每个应用空间最多只能传1000个文件,嘿嘿。这里有篇博友介绍Google App Engine缺陷及限制的文章,大家可以看看。

  Quercus可以在未开放PHP语言支持的GAE上面运行PHP代码,甚至能把Java的类导入到 PHP里面执行。目前已经在Quercus上存在的PHP应用有DokuWiki、Drupal、Gallery2、Mantis、Mediawiki、Openads、PHP-Nuke、phpMyAdmin、PHProjekt、Vanilla、Wordpress,上其官网都能看到如何在Quercus上安装这些应用(似乎没有如何在Google App Engine上安装的实例)。

GAE申请使用步骤

一步:当然是注册Google帐户,如果已注册,只要登陆即可,Google帐户只要注册一个,Google的所有应用都可使用。

第二步:创建一个应用,GAE总共可以创建10个应用,每个应用空间500M。

创建一个Google App Engine应用

创建一个Google App Engine应用

第三步:输入申请人的手机号码,Google App Engine会向申请人手机发送一串数字组成的号码短信,以便验证申请人的有效性,网上有人说是发Mail,当前Google似乎使用了SMS,形式为国家代码+手机号码,即+86TelephoneNum,然后就耐心等待吧,很长时间哦,嘿嘿

填入手机号码,等待GAE发送申请码

填入手机号码,等待GAE发送申请码

第四步:填写GAE应用的详细信息,应用标示符注册完毕后是无法更改的,填写时注意。

填写GAE应用的详细信息

填写GAE应用的详细信息

第五步:填写完毕后,GAE的应用就算申请注册成功了,你可以查看控制面板或者用appcfg.py上传你的开发程序或者邀请开发者和你一起来开发,注册其他应用依此类推。

GAE应用注册成功了

GAE应用注册成功了

如何在Google App Engine上运行PHP

  经过我的测试,跑一般的PHP应该没啥问题,就是碰到有些函数时会报错,比如foreach,fopen,file等,当然这也可能和捆绑的Java类库版本,服务器的运行环境有关。查了很多资料,有说resin-4.0.0里可找到resin.jar,建议使用resin.jar而不是quercus.jar + resin-util.jar + script-10.jar + jetty-util-6.1.0.jar这个防范。这样使用foreach就不会出错,我没有测试成功。

下面是在GAE上部署PHP程序的步骤。

第一步:下载Jar,我从网上下载后放在了一起,你可以从这里下载

第二步:开始配置Quercus的参数,文件地址WEB-INF\web.xml具体怎么配置我也不是太清楚,如果你有Java基础,可能更容易配置,请参考这里WEB-INF/php.ini是自己创建的文件,留空即可,网上有人说没有加入这个文件,就无法运行,我没有尝试过。在此我提个问题,有谁知道如何配置Quercus下的php.ini,Quercus的帮助文档没有详细说明,望能人指点。

第三步:配置appengine-web.xml,此处配置是为了能够上传至GAE应用空间,<application>与</application>之间填写申请的应用标示符,如图

编辑GAE的配置文件,设置应用标示符

编辑GAE的配置文件,设置应用标示符

 经过上述配置后,PHP在Quercus上的配置就算完成了,下面就是如何上传至GAE的应用空间了。

如何将文件上传到Google App Engine的应用空间上

  上传至GAE应用空间的方法有很多,网上我查到有三种方式,基本上都是根据appcfg.py演变而成,参数也一样。

方法一:GAE自带的appcfg.py

第一步:安装GAE,点击下载

第二步:由于GAE是python编程语言实现,所以需要安装python2.5以上版本,点击下载

第三步:配置yaml文件,注意用appcfg.py上传时目录下需要放置yaml文件,有关yaml文件的配置帮助文档在这。

第四步:appcfg.py update 上传文件的所在目录

方法二:第三方工具:SDUpload

点击下载,参数和appcfg.py应用一样。

appcfg.py和sdupload都有一个缺陷,帮助文档上说单个文件的最大上传大小为1,048,576字节,修改参数也无用,大伙可以尝试一下,呵呵。

方法三:Google App Engine Java SDK

这是我觉得最简单的方法,减去了yaml的配置烦恼和文件大小的限制。

第一步:下载appengine-java-sdk

第二步:解压下载文件

第三步:应用appcfg.cmd命令,比如我将SDK的文档放置在D盘,只要点击运行,输入CMD,在DOS运行模式下输入:

D:\appengine-java-sdk-1.2.1\bin>appcfg.cmd update E:\leapsoulcn\war

按照提示输入注册Google帐户的Email地址和密码即可。

如果碰到GAE应用空间不能上传的问题,进程吊死,你只要改变应用参数为rollback即可:

D:\appengine-java-sdk-1.2.1\bin>appcfg.cmd rollback E:\leapsoulcn\war

另据说Google App Engine上传也有续传工具,我没有找到。

  好了,通过上面的介绍,基本上Google App Engine从注册申请到配置部署PHP程序再到上传数据,整个流程就算介绍完了,其实在Google App Engine上运行PHP程序还是相对比较简单,只是似乎支持力度还不够,希望Google尽早在GAE上支持PHP语言。大家可以看下我在Google App Engine上运行的简单PHP应用:http://leapsoulcn.appspot.com/

  注PHP网站开发教程-leapsoul.cn版权所有,转载时请以链接形式注明原始出处及本声明,谢谢。


  1. 2009年6月20日13:12 | #1

    顶一下,很有用!上传一 直是个大难题.

  2. 2009年6月24日20:47 | #2

    顶一下,不过现在该文章中图片都无法显示

  3. 2009年6月25日10:24 | #3

    可以啊,没啥问题

  4. 2009年6月26日09:39 | #4

    博主竟然使用App Engine作图床,强!

  5. 2009年6月26日15:21 | #5

    是啊,这是我现在的用法,还是热切期盼支持PHP啊

  6. kai
    2009年8月25日16:54 | #6

    第二和三的方法我的电脑不能用,第一个方法总是弹出appcfg.py,上传不了,博主能否教一下?

  7. 2009年8月27日19:09 | #7

    python2.5你安装了吗?另外配置yaml文件,根据你的目录情况写正则表达式。

  8. kai
    2009年8月29日19:01 | #8

    装了,yaml文件也配置了,表达式也应该没错,就是一直弹出appcfg.py,怎么办。。。

  9. 2009年9月1日09:07 | #9

    你是什么环境啊?为什么不用java sdk上传呢?

  10. kai
    2009年9月6日10:34 | #10

    xp的,我试过java sdk上传,不能用。。。

  11. 2009年9月7日10:15 | #11

    我也是XP,用的就是java sdk上传

  12. 2009年10月16日15:20 | #12

    上传用appcfg.cmd update war 出来这个

    不知道怎么解决…

    Unable to update:
    java.lang.IllegalStateException: cannot find javac executable based on java.home, tried “D:\Program Files\Java\jre6\bin\javac.exe” and “D:\Program Files\Java\bin\javac.exe”
    at com.google.appengine.tools.admin.AppAdminFactory
    $ApplicationProcessingOptions.getJavaCompiler(AppAdminFactory.java:336)
    at com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:390)
    at com.google.appengine.tools.admin.Application.compileJsps(Application.java:376)
    at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:252)
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:54)
    at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:521)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:130)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:58)
    at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:54)
    com.google.appengine.tools.admin.AdminException: Unable to update app: cannot find javac executable based on java.home, tried “D:\Program Files\Java\jre6\bin\javac.exe” and “D:\Program Files\Java\bin\javac.exe”
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:62)
    at com.google.appengine.tools.admin.AppCfg$UpdateAction.execute(AppCfg.java:521)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:130)
    at com.google.appengine.tools.admin.AppCfg.(AppCfg.java:58)
    at com.google.appengine.tools.admin.AppCfg.main(AppCfg.java:54)
    Caused by: java.lang.IllegalStateException: cannot find javac executable based on java.home, tried “D:\Program Files\Java\jre6\bin\javac.exe” and “D:\Program Files\Java\bin\javac.exe”
    at com.google.appengine.tools.admin.AppAdminFactory
    $ApplicationProcessingOptions.getJavaCompiler(AppAdminFactory.java:336)
    at com.google.appengine.tools.admin.Application.compileJavaFiles(Application.java:390)
    at com.google.appengine.tools.admin.Application.compileJsps(Application.java:376)
    at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:252)
    at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:54)
    … 4 more

  13. 2009年10月16日15:43 | #13

    你SDK是什么版本的?另外你war是放在什么目录下的?直接用这个命令似乎有问题

  14. bg
    2009年10月18日00:33 | #14

    现在超流量要收费了吧。

  15. 2009年10月19日11:11 | #15

    不太清楚啊

  16. 2009年11月8日19:46 | #16

    @david
    是java的问题,已经解决了3q

  17. mickey
    2010年9月2日17:32 | #17

    方法三:Google App Engine Java SDK 这个是要装java环境的,也就是JDK
    另外将appengine-java-sdk-1.3.7\bin\appcfg.cmd 里面的@java修改成 @”C:\Program Files\Java\jdk1.6.0_21\bin\java” (各人安装位置不同) 这样比较容易成功

  18. 2010年9月3日16:35 | #18

    谢谢你对PHP网站开发教程网的支持!!

  1. 本文目前尚无任何 trackbacks 和 pingbacks.