2013年6月5日 星期三

Appfog 雲端虛擬主機

今天在找 PHP 函式的參數預設值要如何自動判別時, 看到小惡魔這篇 "PHP function 參數 default value", 找到解答同時也看到他另外一篇 "PHP 免費雲端主機 PHPFog vs Pagoda vs AppFog", 才知道有這家 Appfog 雲端虛擬主機商, 昨天不是才罵完 1freehosting 嗎? 所以趕緊去看看 Appfog 是啥東東. 研究了一下, 原來它跟 GAE 一樣是 PaaS 雲端服務, 但不同的是, 它自己沒有主機, 而是向 Amazon 或 HP 等 IDC 租用, 而且跟 GAE 一樣, 有免費額度 (註 : Appfog 自 2014 年已經取消免費帳號, 改為付費服務), 對於一般應用綽綽有餘. 試用了一下, 感覺只有六個字 : 簡單穩定快速, 非常滿意. 以下是我蒐集的 Appfog 教學 :
  1. 官網 : appfog af cli tools
  2. 安裝教學 教學二 教學三 離線安裝 
  3. Appfog 的小試用
  4. appfog 中怎样獲得的MYSQL數據庫的連接信息
只要按照安裝教學一步步做, 很快就可以將自己原先的 PHP 應用部署到 Appfog 上. 比起 GAE 還要學習 Java 或 Python, 我想這是最經濟的雲端方案. 整個過程摘要如下 :
  1. 先到 Appfog 申請帳號 : https://console.appfog.com/signup
    完畢後會寄 verification code 到您的登錄信箱, 回到註冊頁填入驗證碼馬上就可以登錄了.
  2. 再到 Ruby 網站下載 Rubyinstallers, 目前是 Ruby 2.0.0 版 (建議安裝 1.9.3 版才不會有錯誤訊息), 約 16MB. 但這並不是要你學習 Ruby 語言, 而是它要用 Ruby 來管理套件以及處理應用程式部署安裝等工作. 安裝 Ruby 時最好勾選將 Ruby 加入 path 中 :



    如果忘了勾選也沒關係, 可以在安裝完後, 到控制台/系統/進階/環境變數裡, 把 C:\Ruby200\bin 加到 path 中, 這樣才能在任意目錄下執行 Ruby 指令.
  3. 接著打開 DOS 視窗, 切到你的 PHP 應用程式目錄, 例如 D:\snowball, 輸入下列指令安裝 af 套件, 用來管理應用程式部署, 更新, 刪除等等).
    gem instal af

    順利的話, 應該看到如下訊息  (公司防火牆若有擋, 那就會報出 unreachable error 了) :


  4. 檢查 af 是否安裝成功 :
    af -v

    如果輸出 af 版本就對了 :
    D:\snowball>af -v
    [WARNING] DL is deprecated, please use Fiddle
    af 0.3.18.12
  5. 接下來就可以用註冊之 email 與密碼登入 appfog 了 :
    af login

    D:\snowball>af login
    [WARNING] DL is deprecated, please use Fiddle
    Attempting login to [https://api.appfog.com]
    Email: yourname@ms15.hinet.net
    Password: ********
    Successfully logged into [https://api.appfog.com]
  6. 最後一步, 就是上傳檔案, 部署應用程式, 只要在 app 所在目錄下 af push 指令, 就會把該目錄下的所有檔案上傳 appfog 了 :
    af push 



  7. 這樣就大功告成, 只要連線 http://test.ap01.aws.af.cm 就可以看到網站了. 如果有部份檔案更新, 不用再下 af push 指令重新部署, 只要用 update 即可 :
    af update snowball



  8. 檢視應用程式部署情形 :
    af apps
  9. 停止與啟動應用程式 :
    af start
    af stop
  10. 下載 app 原始碼
    af pull <appname>
  11. 刪除應用程式
    af delete <appname>

    當此應用程式不要了, 就用 af delete app_name 刪除.
以上, 是不是跟 GAE 很像呢? 我個人覺得是比 GAE 還要簡單一些. 但最重要的, Appfog 也跟 GAE 一樣提供 cron job!  詳見 :
http://blog.appfog.com/task-scheduling-support-on-appfog-with-standalone-apps/



沒有留言 :