2012年8月17日星期五

PHP Fog 免費雲端網存空間使用心得

上次介紹PaaS (Platform as a Service)模式的AppHarbor - AppHarbor - 新一代雲端開發平台使用心得,它完美支援ASP.NET技術,但可惜就不支援普遍的PHP語言。

所以上網找一找同類型的免費服務,PHP的選擇其實都不算多的,但都有好幾個選擇,其中兩間都有免費的服務,我認為不錯的是 PHP FogPagoda Box
最後選擇了PHP Fog原因是Pagoda Box的MySQL DB只提供免費10MB,而PHP Fog就有20MB,另外Pagoda Box亦有1GB Bandwidth上的限制。

PHP Fog同樣是以GIT去提交檔案,所以故之然同樣有Collaboration和Version Control的優點。
跟上一篇文章一樣,由零開始去教大家如何用這個新一代的雲端開發平台。
我會使用 TortoiseGit 和我熟悉的WordPress 做範例。

1. 下載GIT Client - TortoiseGit
PHP Fog跟之前介紹的AppHarbor一樣以GIT架構執行檔案存取,所以本機都要建立一個GIT的Repository做Commit (至本機)和Push (至PHP Fog)的動作。
事前需要花一點功夫去建立GIT的基地。
  • 先下載GIT的核心檔案 - Git for Windows,可以選擇下載Portable版本的PortableGit。
  • 然後下載簡單易用的GIT Client - TortoiseGit

把PortableGit Unzip至C:\PortableGit。(路徑不能有空格或中文)
再安裝TortoiseGit。

在桌面空白的地方Right Click > TortoiseGit > Settings,先在左邊選單選GIT,User Info處填入Name和Email,因為GIT的Commit動作是必須要有以上資料。
之後去確認一下Git.exe的位置是否如"C:\PortableGit\bin"
完成以上的話,GIT部份已大功告成。



2. 建立專案資料夾
這裡我使用的PHP IDE是Aptana Studio 3,其他IDE如Eclipse PDT / NetBeans,甚至你使用Notepad都沒所謂,因為我們只著眼放置檔案的資料夾而已。

1.建立專案後,假設資料夾是"C:\Users\[USERNAME]\Documents\Aptana Studio 3 Workspace\WordPress\"
2.前往WordPress網站下載最新版本,解壓縮至上述資料夾。

3. 建立本機GIT Repository

前往專案資料夾"C:\Users\[USERNAME]\Documents\Aptana Studio 3 Workspace\WordPress\"
在空白地方,Right Click > GIT create new repository後,
TortoiseGit會問你是否Make it Bare,直接按OK先跳過,
再出現一個告訴你資料夾不是空的對話,按Proceed就可以。
因為GIT跟SVN一樣,要建立的Repository資料夾,預設是空的。
最後在WordPress資料夾應該會見到一個隱藏資料夾名為.git。




暫時不用修改任何檔案,直接按Right Click > Git Commit -> "Master"。
這個動作用途是把新增的檔案Commit至本機GIT資料庫並視為為HEAD版本(最新的),用以之後的Push指令(上傳至PHP Fog)。
等待完成後,先按Close,那本機要做的就差不多完成了。




4. PHP Fog 申請帳號&設定
來到PHP Fog部份,先申請一個帳號,過程很簡單,不用詳述了。

完成申請過程後,登入,便會去到一個Dashboard,顯示你擁有的Cloud和Apps。
免費版本可以讓你建立3個Apps。

現在我們就新建一個WordPress App,如下圖按[New App]按鈕。
來到下一頁的Step 1。
這一頁會讓你選擇App的樣式,你可以直接引用提供的Template開始新的Project。
我們先選擇Custom App,雖然PHP Fog已經有提供WordPress的Template,但我們先學習一下。
再來到Step 2,選擇subdomain,最後按Create App。

這時候會去到App Console,你會看到PHP Fog正在幫你建立起網站,等待約一分鐘左右,應該就OK了。




5. 修改設置WordPress
現在PHP Fog應該已經建立好了,這時第一件事要做的是修改WordPress的wp-config.php。
回到專案資料夾,首先把wp-config-sample.php更改名稱至wp-config.php,填上PHPFog提供的MySQL連線資料和Security Keys。

MySQL資料可以使用PHP Fog提供的環境變數,真的需要實際數值,亦可以在Env. Variables的Tab找到,如下圖:



Security Keys方面,可以使用官方提供的Generator :
https://api.wordpress.org/secret-key/1.1/salt/
其他設定請參考WordPress官方Codex : Editing wp-config.php

完成後,大概如下:
define('DB_NAME', getenv('MYSQL_DB_NAME'));
define('DB_USER', getenv('MYSQL_USERNAME'));
define('DB_PASSWORD', getenv('MYSQL_PASSWORD'));
define('DB_HOST', getenv('MYSQL_DB_HOST'));
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('AUTH_KEY', '[Random Text]');
define('SECURE_AUTH_KEY','[Random Text]');
define('LOGGED_IN_KEY', '[Random Text]');
define('NONCE_KEY', '[Random Text]');
define('AUTH_SALT', '[Random Text]');
define('SECURE_AUTH_SALT', '[Random Text]');
define('LOGGED_IN_SALT', '[Random Text]');
define('NONCE_SALT','[Random Text]');

儲存後,必須重覆做一次按Right Click > Git Commit -> "Master",把已修改版本送回本機GIT Repository,請參考本文第3步。


6. 建立SSH Key
我們現在要進行一個Push的"上傳"的動作,這類似SVN的Commit。
但GIT架構是自己是Repository,Commit動作是在本機進行(即本文第3步),要送至另一個Bone Repository (你可以暫時看待為中央版本庫),我們需要用Push。

跟上次介紹的AppHarbor不同,PHP Fog對認証要求更嚴格。
需要建立GIT存取Repository時所需要的SSH Key,這一點也不會麻煩,而且是很簡單很快的事。

1. 使用PuTTYgen取得SSH Key
前往PuTTY官網下載PuTTYgen,選puttygen.exe那個。

2. 下載後開啟程式,按Generate,然後Mouse在介面上隨意移動,當進度條滿時,中間便會出現SSH Key字串。
3. 在Key Passphrase位置輸入你自選的密碼,要記著它,之後會用上。
4. 最後按Save Private Key儲存為*.ppk檔案。



5. 前往PHP Fog,進入My Account,再按SSH Keys,Nickname欄隨意輸入你喜愛的名稱,然後Copy&Paste PuTTYgen產生的Key至Public Key欄位,最後按Save SSH Key完成。



6. 回到PHP Fog的App Console下圖位置,你應該會找到GIT連線位址了。



7. GIT 提交檔案(Push)至PHP Fog

如下圖在TortoiseGit 按Push。


在Destination > Remote處,還沒有任何選項,所以我們要先按Manage加入PHP Fog,
名稱輸入PHPFog_WordPress,Repository URL 輸入剛剛的GIT連線位址,最後Putty Key選擇第6步由PuTTYgen儲存的*.ppk檔案,按Add New/Save後,再按OK,便會自動選擇PHPFog_WordPress,緊記選取"Force Overwrite Existing Branch (May discard changes)" ,原因是PHPFog每個新建的App,都會Default送你一個輸出"Hello world!"的index.php,而WordPress本身亦有index.php,所以故之然會有conflict 出現而Push失敗,所以第一次要選取這個,之後就不用了。

最後再按OK,便會進行Push的動作。
詢問Password時,輸入第6步時所自選的Key Passphrase便可。



8. 安裝WordPress
搞了那麼久,就是等待這一刻。
回到PHP Fog按右上角的View Live Site,出現WordPress安裝畫面,按下一步,大功告成!!!



後記
使用PHP Fog建立網站整個過程應該沒有太大難度,而且伺服器速度是不錯的。
雖然MySQL不能用MySQL Workbench等軟件作Remote Access,但內建phpMyAdmin應該夠用有餘。

或者大家會知道有另一個姊妹作叫App Fog,同PHP Fog屬同一間公司出品。
若果想知道兩者有什麼分別,或者不知道應該選用那個,可以看看我在Forum上問的問題 -
App Fog VS PHP Fog

繼上次介紹的AppHarbor後,PHP Fog同樣成為我愛用的好物。
例如值得一提是PHP Fog早前時間是免費6個月,但現在已經改為永久免費了,只是有很多網站介紹PHP Fog時都沒有自己搵最新資料,抄襲的惡果。
請見:
PHP Fog is Free Forever, and Now Even More Free!

沒有留言:

發佈留言