過年我就淡定放假不寫文了(被拖走 根據 Google Analytic 統計,週二的這篇文章會讓訪客增長 XD
上一篇極其混亂的 PaaS 入門指南(二)已經簡易的向大家介紹相關工具的安裝(各種痛苦啊那個,感覺 AppFog 的對 Windows 比較友善⋯⋯)
這篇我們先休息一下,因為我發現字太多我寫很累看的人好像也很累 XD 先來簡易介紹一下 AppFog / OpenShift 的快速安裝功能。
AppFog
先從 AppFog 來介紹,畢竟這孩子比較友善 XD
登入後,應該會看到類似的畫面(我的上面已經有開一個,那個是特殊用途以後再討論 XD) 我們先點選「New App」的按鈕,來產生一個 Application (對 PaaS 來說,通常不是用 Server 來作為單位,而是一個 Web Application 也就是說,我們只負責把做好的網站放上去,而不用管伺服器設定的意思。)
第一步是選擇 Application 我們先選 WordPress 來當這次教學的範例。 (對 AppFog 來說 Ruby on Rails 之類的,都可以當作是一種 Application 反正不管他,要解釋也可以解釋個什麼出來 XD)
第二和第三步分別是選伺服器的位置以及域名(只支援子域名,而且很長,是 名字.(伺服器區域).af.cm 的格式。)
右邊會顯示這個 Application 最基本消耗的 RAM 跟 Service (資料庫) 印象中 WordPress 基本是 256M 之後都可以調整。 完成後點選「Create App」產生即可。
接下來會出現安裝中的畫面,稍微等 AppFog 設定即可。
看到這個畫面其實就是成功了,右上角的「View Live Site」就可以看到準備安裝的 WordPress 網誌。 (註:不知道是哪裡卡到,我這邊測試打開是一遍空白,如果各位有類似情況我們先放到一邊,安裝語言包先~)
如果想要先升級 WordPress 可以先不要做安裝的動作。
首先先下載 WordPress 的原始碼到電腦。
(註:AppFog 使用的 WordPress 阪本很舊,有需要可以下載新版的 WordPress 覆蓋過去,但是要確保 wp-config.PHP
沒有被蓋掉。)
af pull <APP 名稱> <下載的位置>
APP 名稱就是這個,我的就是 aotoki-blog
這會因為你的選擇而改變。
下載的位置就是你電腦的目錄,例如我用 cd ~/Desktop
然後用 af pull aotoki-blog blog
那就會存到我桌面上的 blog
資料夾裡面。
(Windows 用戶沒有 ~ 符號,印象中是 %HOME_PATH% 或者 %HOMEPATH% 可以自己嘗試看看)
接著打開 wp-include/version.PHP
來查看版本。
這邊看到的是 3.4.2 版,寫這篇文章的時候已經是 3.8.1 版,太舊了,到 WordPress 正體中文 的官方網站下載最新版,然後覆蓋掉整個 WordPress (除了 wp-config.PHP
之外)
註:如果不想升級,必須自己到方網站下載 zh_TW.mo 檔案,然後放到 wp-content/languages
資料夾中。
接著編輯 wp-config.PHP
檔案。
找到
1define('WP_LANG', '');
改為
1define('WP_LANG', 'zh_TW');
簡單說就是指定使用的語言。
然後上傳回 AppFog。
af update <APP 名稱>
註:有另一個叫做 push
的指令看起來好像跟 pull
是一對的,但是不是(千萬別用錯,我就踩到這雷⋯⋯)
其實這個步驟會要稍微等一下,不過不會太久。 (上傳失敗或有錯誤應該也蠻好懂的,不是全部 OK 應該就是有壞掉 XD)
一切如預期一般,打開就是中文的安裝畫面。
之後完成安裝就可以得到一個 WordPress 了!
至於 OpenShift 的部分容許我拆成第二部分,我已經花了一小時在寫這一段了 XD
關於使用 PaaS 檔案相關機制時也有注意事項,以下務必記得:
- 任何從 WordPress 後台(或者你的程式)上傳的檔案,都有可能在下次更改時被刪除或者不見(請看附註)
- 所有的程式碼都是 PaaS 透過類似版本管理的方式控管的,除此之外的變更是無法控制的
- 程式碼容量有上限,非這個 Application 所需的圖片、檔案都應該放置在 Amazon S3 之類的檔案儲存服務上
也就是說,像是佈景、插件,雖然你可以透過 WordPress 的後台安裝,但是下次你更新 WordPress 時都會不見(一旦運行了 af update
)因此正確的做法是 af pull
後,在自己電腦更改,然後 af update
到 AppFog 或者其他平台(依照其指令)
關於這些 PaaS 的限制原因,我會在入門篇寫完後,撰寫進階篇時將我過去研究和探索的經驗分享給大家。