手把手教你在Google App Engine上運行PHP
話說前不久 Google App Engine 支持了第二種語言 Java,占據GAE需求排行榜的 java終于支持了,如果按這樣的思路執行下去,那么不久的第三個語言肯定就是 PHP了!不過貌似大家都按耐不住這份心情,對 GAE 開始了各種的嘗試,不過這里不能不說 java 是一個好東西,擴展和應用非常的廣泛,于是乎就有了Quercu,它是一個 java 的應用,簡單的說就是 PHP in Java。利用 Jetty(一款 Java 的web服務器)+ Quercus 就能讓你在未開放 PHP語言支持的 GAE 上面運行 PHP代碼,甚至把 Java 的類導入到 PHP里面執行!這就是 Quercus 的魔力。同樣的如果你是 Ruby 用戶,可以使用 JRuby 實現執行。好吧,下面開始實踐:
部署環境:Windows XP + Eclipse 3.4 + GAE for Java eclipse 3.4 plugins(如果使用官方教程無法安裝,請參見另類安裝教程)
首先,下載支持庫類。肯定得需要 Jetty,Quercus 的 jar 包(由于 GAE 的版本限制,或許只支持目前的版本包,如果鏈接失效請搜索同樣版本的jar包或者在本文的末尾下載整個演示工程的 war 包),第一個是 jetty-util-6.1.0.jar, quercus.jar(Quercus 3.1.6 jars版本,最新版的 3.2.x 不支持) 以及 Quercus 包中的 resin_util.jar(這兩個的下載頁面),這三個下載完畢之后放置在 GAE 工程的 “war/WEB_INF/lib” 目錄下面并為把 lib 整個目錄設置為編譯環境(Build Path)。
然后開始 Quercus的參數配置,編輯 “war/WEB_INF/web.xml” 文件,在< web-apps>< /web-apps>中間的適當位置加入:
- < servlet>
- < servlet-name>Quercus Servlet< /servlet-name>
- < servlet-class>com.caucho.quercus.servlet.QuercusServlet< /servlet-class>
- < init-param>
- < param-name>ini-file< /param-name>
- < param-value>WEB-INF/php.ini< /param-value>
- < /init-param>
- < /servlet>
- < !-- 其他配置 -->
- < servlet-mapping>
- < servlet-name>Quercus Servlet< /servlet-name>
- < url-pattern>*.php< /url-pattern>
- < /servlet-mapping>
上面的 “WEB-INF/php.ini” 是自己創建的文件,并非 PHP 環境下復制過來的哦,留空即可,貌似沒有加入這個文件,就無法運行。
另外還需要在 “WEB-INF/appengine-web.xml” 加入下面代碼:
- < static-files>
- < exclude path="/*.php" />
- < /static-files>
- < resource-files>
- < include path="/**.php" />
- < /resource-files>
- < /strong>
以上完成之后,就可以進行 PHP 代碼的測試了,把你要運行的 php 文件放在 “WEB-INF” 目錄下面即可。然后通過部署上傳就可以看到 php 的完美運行了,本人的測試地址:http://go-ogle.appspot.com/info.php
更多使用方法請看 Quercu 官方網站的相關文檔。
附圖:
【編輯推薦】