使用Google App Engine架設Micolog

Google App Engine(GAE)是一個網站開發平台,我們可以利用其架設一個屬於自己的Blog網站。以Windows XP為例,事前準備工作有幾項︰
1.向Google申請一個Google App Engine ID,或從自己的Google Apps登入申請ID也可以,位址在http://appengine.google.com/a/YOURDOMAIN.COM/,申請ID需要簡訊(SMS)驗證碼,我輸入好幾支中華電信手機號碼都沒下文,完全收不到驗證碼,這時請利用簡訊問題回報表格通知他們(請用英文填寫問題),過一段時間會回信通知已經手動開通你的申請帳號,我是大約隔一個星期才收到通知信。
2.下載Python語言程式,我個人選擇2.5版,請勿選擇3.0版(極有可能會有不相容的狀況)。
3.下載Micolog
4.下載Google App Engine SDK
準備好之後,先安裝Python,再安裝GAE SDK,將Micolog目錄移至GAE SDK目錄下,準備上傳到你申請的GAE空間。上傳之前先編輯Micolog目錄下的app.yaml檔案,將第一行application: mlog改為application: (你建立的app_id)。打開命令提示字元,切換到GAE SDK安裝目錄,例如我安裝在E:\google_appengine。至於詳細命令及如何操作請參考The App Engine Documentation,在此不多談(因為我也不懂),直接利用appcfg.py上傳檔案。在命令提示字元輸入︰

appcfg.py update micolog/

之後會出現要求輸入信箱帳號和密碼,然後就會看見檔案上傳的訊息。
micolog-update

登入Google App Engine後台,可見到應用程式詳細執行佔用的Quotas。
app-engine-dashboard-01

應用程式執行的記錄頁,每一個Log都有詳細列表。
app-engine-dashboard-02

Datastore資料庫索引,告知現在資料庫建立情況和是否正常執行中。
app-engine-dashboard-03

回到我們建立的Blog網站前台(瀏覽器輸入http://你的app_id.appspot.com/),已經成功架設完成。選擇Micolog來架設,是因為當初原作者當初使用WordPress,後期為了某些原因不想遺失這些資料(無縫牽移),使用Python手寫建立一個GAE平台的Blog程式,所以此程式特性幾乎可說是WordPress簡易移植版。

後台撰寫文章的頁面,有所見即所得編輯器和Html編輯器,其中的Slug就是你想要的網址別名,而不是一長串的UTF-8編碼的網址。目錄指的是分類,需另外建立。
Micolog-01

管理文章。
Micolog-02

管理訪客的留言評論,只能刪除,不能編輯。
Micolog-03

部落格設定和系統配置。
Micolog-04

資料的匯入和匯出,相容於WordPress備份格式。
Micolog-05

工具使用。
Micolog-06

其他功能說明請參考這裡,有任何建議或改進請留言給原作者,至少現在還在開發當中。GAE建立的網站可以使用自己的域名,如果是Google Apps的帳號,請到管理後台開啟GAE Service(輸入app_id),之後會提示輸入域名,再到DNS設定一筆CNAME記錄就完成了。例如我在GAE建立Micolog的部落格︰
http://micolog.my-net.tw/
當然GAE限制和缺點也是頗多的,在這篇文章就有相當詳細的解說。

在GAE平台上的Blog程式其實也是不少,例如︰BloogSDBlogpotlatchblogtublogplogcpedialogwoiclub等等都是,當然還可以搜尋到其他更多的GAE BlogAppEngine Blog

2009/02/19︰一個帳號目前可以建立10個APP-ID(application),但是有幾點請特別注意,在建立新的APP-ID的時候,底下有一個Authentication Options (Advanced),一定要選擇正確,因為事關你是否可以以管理員身份登入。如果你當初申請GAE帳號是用Google Account申請,請選擇Open to all Google Accounts users (default),以你自己的Google Apps Account申請,請選擇Restricted to the following Google Apps domain,選錯的話,以後都不能修改,而且登入頁面轉址會根據你選擇有所不同,很可能無法以自己的帳號來登入管理(這點我覺得Google需要再修改,要不然我已經浪費兩個APP-ID,直接廢掉了)。另外每一個建立完成的APP-ID是無法刪除的(所以請選一個可大量適用的ID),但可上傳更新其他的程式變為新的應用網站。

2009/09/12︰目前新版GAE SDK上傳會出現幾種錯誤,解決方法請參考GAE上傳web app出現索引錯誤micolog上傳favicon.ico錯誤。主要錯誤是新版SDK現在不能識別單屬性的索引,解決辦法就是打開index.yaml,刪除單一個name屬性的索引。例如︰

# Unused in query history -- copied from input.
- kind: Archive
  properties:
  - name: date
    direction: desc

或是

# Unused in query history -- copied from input.
- kind: Entry
  properties:
  - name: post_id
    direction: desc

就可以移除。