HTML5 စာအုပ် စ ရေးတုန်းက github pages ကို အသုံးပြုခဲ့တယ်။ github page သုံးတဲ့ အတွက် တစ်ခုခု ပြင်ပြီးတာနဲ့ တစ်ခါတည်း push လုပ်လိုက်ရုံပါပဲ။ FTP ကို ချိတ် ။ upload တင် စတာတွေကို လုပ်နေစရာမလိုတဲ့ အတွက် တော်တော်လေးကို သက်သာပါတယ်။
သို့ပေမယ် ကျွန်တော် HTML5 စာအုပ်ကို opensource လုပ်ချင်တာ မဟုတ်ပါ။ ဒါကြောင့် github ကနေ ပြန်ပြီးတော့ ဖျက်ချခဲ့ပါတယ်။ github လိုမျိုး feature ရအောင် appfog ကို အသုံးပြုခဲ့တယ်။ mmwebfonts သုံးခဲ့တုန်းက appfog က custom domain အသုံးပြုခွင့်ပေးထားပါတယ်။ အခုတော့ ၁ လကို US $ 20 ပေးမှသာ custom domain အသုံးပြုခွင့်ရလိမ့်မယ်။ ဒါနဲ့ appfog မှာ တင်ဖို့ ကိစ္စကို လက်လျော့လိုက်တယ်။
github pages လိုမျိုး ကိုယ့် server မှာ ကိုယ်တင်လို့ မရဘူးလား။ Git server side တစ်ခု ထောင်မယ်။ website dir က git push လုပ်လိုက်တာနဲ့ အလိုလို pull လုပ်မယ်။ မဖြစ်နိုင်ဘူးလား ? github pages တောင် ရသေးတာပဲ ဆိုပြီး တော့ တချက်ရှာကြည့်တော့ အတော့်ကို လွယ်တာကို တွေ့ပါတယ်။
Setting up git server
ကျွန်တော်တို့ အရင်ဆုံး git server တစ်ခု ဆောက်ရအောင်။ ကျွန်တော်ကတော့ ubuntu server ကို ပဲ အသုံးပြုထားပါတယ်။
sudo apt-get install git
ဆိုပြီး git ကို အရင် သွင်းပါ။
ပြီးရင်တော့ ssh key ကို ကျွန်တော်တို့တွေ ထည့်ရပါမယ်။ ကိုယ် သုံးမယ့် computer ထဲကနေ ssh key ကို generate လုပ်ပါ။ မသိရင် github မှာ ရေးထားတာကို ဖတ်ပါ။ id_rsa.pub ကို ကျွန်တော်တို့တွေ ~/.ssh/id_rsa.pub ဆိုပြီးရပါမယ်။
cat ~/.ssh/id_rsa.pub
ဆိုပြီး တော့ ssh key ကို ကြည့်ပါ။ copy ကူးပါ။
Server side ဘက်မှာ
vi /tmp/id_rsa.myusername.pub
ဆိုပြီး ဖန်တီးပြီး i ကို နှိပ်ပြီး insert လုပ်ပါ။ copy ကူးထားတဲ့ code ကို paste လုပ်လိုက်ပါ။ ပြီးရင် :wq နဲ့ ပြန်ထွက်ပါ။
mkdir ~/.ssh/
ဆိုပြီး ဖန်တီးပါ။
cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys
ဆိုပြီး ssh key ကို authorized_keys ထဲ ထည့်ပါ။
ဒါဆိုရင်တော့ ssh key ထည့်တဲ့ ကိစ္စတော့ ပြီးသွားပြီ။ git server ဖန်တီးရအောင်။
mkdir /opt/git
mkdir /opt/git/myproject.git
cd /opt/git/myproject.git
git --bare init
အခုဆိုရင် /opt/git/myproject.git အောက်မှာ ကျွန်တော်တို့ git repo ဖန်တီးပြီးပါပြီ။ git push လုပ်လိုက်တာ နဲ့ update ဖြစ်သွားအောင် hook တစ်ခု ဖန်တီးပါမယ်။
cd /opt/git/myproject.git/hooks
vi post-update
post-update ထဲမှာ
GIT_WORK_TREE=/path/htdocs git checkout -f
ဆိုပြီး ထည့်ပါ။ /path/htdocs ဆိုတာကတော့ သင့် ရဲ့ website လမ်းကြောင်းပါ။ :wq နဲ့ save လုပ်ပြီး ပြန်ထွက်။
Publish website using Git
အခု local computer ဆီ ပြန်သွားရအောင်။ folder တစ်ခုလောက် အရင် ဆောက်ပြီး git repo ကို ထည့်ဖို့လိုပါတယ်။
cd myproject
touch README.md
git init
git add .
git commit -m 'initial commit'
git remote add origin root@yourIP:/opt/git/myproject.git
git push origin master
ဒါဆိုရင် တော့ myproject folder ထဲမှာ server က git repo ထည့်ပြီးပါပြီ။ သင့်ရဲ့ website path ကို server ဘက်မှာ သွားကြည့်လိုက်ပါ။ ကျွန်တော့် example အရ ဆိုရင်တော့ /path/htdocs ပေါ့။ အဲဒီမှာ README.md file လေး တွေ့ပါမယ်။ push လုပ်လိုက်တာနဲ့ post-update hook ကို ခေါ်ပါတယ်။ git checkout အစား နှစ်သက်ရာ git command ကို အသုံးပြုနိုင်ပါတယ်။
website တစ်ခု လုံး local computer က myproject folder ထဲကို ထည့်။ ပြီးရင် git နဲ့ push လုပ်လိုက်တဲ့ အခါမှာတော့ server ပေါ်က web dir ထဲ အလိုလို ရောက်သွားပါမယ်။
Git အသုံးပြုတာ FTP upload ထက်ပိုပြီးကောင်းတာက
– ပြင်ထားတဲ့ file တွေကို သာ upload လုပ်ခြင်း
– git က distributed revision control and source code management (SCM) system ဖြစ်တဲ့ အတွက် team work နဲ့ အလုပ်လုပ်နိုင်သလို version control အတွက်ပါ အဆင်ပြေပါတယ်။
– FTP မှာ လို login ဝင် ။ dir နေရာ သွား။ file တွေ ရွေးပြီး upload တင်ဖို့မလိုတဲ့အတွက် အချိန်ကုန် သက်သာခြင်း
စတာတွေ ထူးပါတယ်။
ကျွန်တော်ကတော့ http://books.saturngod.net ကို git နဲ့ deploy လုပ်ထားပါတယ်။ HTML5 စာအုပ် update ဖြစ်တာ ဖြစ်ဖြစ် စာအုပ် အသစ် တစ်အုပ် ထပ်ဖြည့်တာ ဖြစ်ဖြစ် လွယ်လွယ် ကူကူ publish လုပ်နိုင်ပါတယ်။
How to use Git ?
Git အသုံးပြုပုံကို echo magazine April issue မှာ ဖတ်နိုင်ပါတယ်။
Reference
– http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server
Leave a Reply