Installing & Compiling OpenGTS Tracking System~!

Opengts

# Project ကလုပ္ခဲ့တာ ၁ႏွစ္ေက်ာ္ေက်ာ္ေလာက္ေတာ့ ရွိပီဗ်။ အဲ့တုန္းက လုပ္ထားတဲ့ Documentation ကိုပဲ ျပန္တင္တာပါ။

# မဟုတ္ရင္ ၾကာရင္ ေမ့သြားမွာစိုးတာရယ္၊ တျခား reference လုပ္လိုတဲ့သူေတြအတြက္ Share လိုက္ပါတယ္။

# GPS Tracking System နဲ႕ပတ္သက္ရင္ ဒီ OpenGTS တစ္ခုတည္းပဲ ရွိတာေတာ့ မဟုတ္ဖူးဗ်။ တျခား OpenSource  (or) CloseSource ေတြ အမ်ားအျပားရွိပါေသးတယ္။

Ok! let’s start.

Preparing & Setting Environment Variables

  1. ပထမဆံုး jdk-7u72-windows-x64 ကိုသြင္းပါ(default)။ ၿပီးရင္ Java run၊ မ run cmd ထဲမွာ စစ္ပါ။

java –version

  ( make sure it says “Java™” & “Java Hotspot™ Client VM” )

  1. mail-1.5.2.jar ဖိုင္ကို C:\Program Files\Java\jdk1.7.0_72\jre\lib\ext ထဲသို႕ Copy ကူးပါ။
  2. Apache “Ant” Folder ကို C:\Program Files\apache-ant ေအာက္သို႕ ေရြ႕ပါ။
  3. Apache-Tomcat Folder ကို C:\Program Files\apache-tomcat ေအာက္သို႕ေရြ႕ပါ။
  4. mysql-5.6.22-winx64 ကို Default feature အတိုင္း သြင္းပါ။
  5. mysql-connector-java-5.1.34 ဖိုင္ကို C:\Program Files\Java\jdk1.7.0_72\jre\lib\ext ထဲသို႕ Copy ကူးထည့္ပါ။
  6. 5.7 Folder ကို C:\OpenGTS_2.5.7 ေအာက္သို႕ ကူးထည့္ပါ။
  7. ၿပီးရင္ Variables ေတြ ေပါင္းသတ္မွတ္ပါမယ္။
  8. Run box ထဲမွာ sysdm.cpl ဟုရိုက္ပါ။ Advanced Tab ကိုသြားပါ။ Environment Variables ကို ႏိွပ္ပါ။
  9. System Variable ထဲမွာ New ကိုႏွိပ္ပါ။ Variable name ကို JAVA_HOME ဟုေပးပါ။ (capital letters)
  10. Variable Value မွာ C:\Program Files\Java\jdk1.7.0_72 ကိုထည့္ပါ။
  11. OK ႏွိပ္ပါ။ ဆက္လက္ၿပီး New ကိုႏွိပ္ပါ။
  12. Variable Name ကို ANT_HOME ေပးပါ။ Variable value ေနရာတြင္ C:\Program Files\apache-ant ထည့္ပါ။
  13. OK ႏွိပ္ပါ။ ဆက္လက္ၿပီး New ကိုႏွိပ္ပါ။
  14. Variable Name ကို CATALINA_HOME ေပးပါ။ Value ေနရာတြင္ C:\Program Files\apache-tomcatထည့္ပါ။
  15. OK ႏွိပ္ပါ။ ဆက္လက္ၿပီး New ကိုႏွိပ္ပါ။
  16. Variable Name ကို GTS_HOME ဟုေပးပါ။ Value ေနရာတြင္ C:\OpenGTS_2.5.7 ကိုထည့္ေပးပါ။
  17. System Variable ထဲမွာ Path ကိုရွာပါ။ Select ေပးၿပီး Edit ႏွိပ္ပါ။
  18. Variable Value ၏ ေနာက္ဆံုးေနရာမွာ semicolon [;] ခံၿပီး C:\Program Files\MySQL\MySQL Server 5.6\bin ကို ထည့္ပါ။
  19. Semicolon[;] ထပ္ခံၿပီး %JAVA_HOME%\bin ကိုဆက္ထည့္ပါ။
  20. Semicolon[;] ထပ္ခံၿပီး %ANT_HOME%\bin ကိုဆက္ထည့္ပါ။ [semicolon ခံစရာမလိုေတာ့ပါ။ OK ႏွိပ္ပါ။

 

Installing NT Service & Compiling OpenGTS Tracking System

  1. Run box ထဲကေန cmd ေခၚပါ။
  2. mysqld ကိုရိုက္ၿပီး enter ေခါက္ပါ။ TimeStamp error ျပေနပါလိမ့္မည္။ သို႕ေပမဲ့ Run ပါသည္။
  3. Run မ Run ကို Task Manager ေခၚၿပီး Process ထဲတြင္ ၾကည့္ပါ။ mysqld ဆိုပီး ေပၚေနပါလိမ့္မည္။
  4. cmd ကုိ ပိတ္မပစ္ဘဲ ဆက္ Run ထားပါ။ ေနာက္တခု cmd ထပ္ေခၚပါ။
  5. mysqld –install ဟုရိုက္ၿပီး Enter ေခါက္ပါ။ Successfully installed Service ဆိုပီး ေပၚလာပါလိမ့္မည္။
  6. MySQL သည္ default အားျဖင့္ password မပါပါ။ password ခ်ိန္းပါမယ္။
  7. mysql –uroot –p ဟုရိုက္ပါ။
  8. Enter Password ဟုေပၚလွ်င္ ဘာမွမရိုက္ဘဲ Enter ေခါက္ပါ။
  9. mysql > prompt ေပၚေနပါလိမ့္မည္။
  10. update mysql.user set password=password(‘password’)where user=’root’;
  11. ဟုရိုက္ပါ။ မ်က္ေတာင္ အဖြင့္အပိတ္ျပထားေသာ password ေနရာတြင္ password ကိုရိုက္ထည့္ပါ။

(root ေနရာတြင္ ဒီအတိုင္း ထားပါ။ မေျပာင္းပါႏွင့္)

  1. Query OK ဘာညာဆိုပီး ျပေနပါလိမ့္မည္။ ေနာက္တေၾကာင္းတြင္ flush privileges; ဟုရိုက္ထည့္ပါ။
  2. Effect ျဖစ္သြားပါလိမ့္မည္။ quit ရိုက္ပီးထြက္ပါ။ အဆင့္ ၇ မွ ျပန္၀င္ၿပီး Password ေျပာင္းမေျပာင္းစမ္းသပ္ပါ။
  3. Apache-Tomcat အားNT Service သြင္းရန္ cd %CATALINA_HOME%\bin ဟုရိုက္ပါ။
  4. bat install ဟုရိုက္ပါ။ (Run box ထဲမွ services.msc ေခၚၿပီး ၀င္၊ မ၀င္ၾကည့္ႏိုင္သည္။)
  5. cmd ထဲမွဆက္လက္ၿပီး openGTS compiling လုပ္ရန္ cd %GTS_HOME% ဟုရိုက္ကာ Directory ခ်ိန္းပါ။
  6. OpenGTS Folder လမ္းေၾကာင္းသုိ႕ေရာက္သြားပါလိမ့္မည္။ ant all ဟု ရိုက္ပါ။
  7. Build Sucessful ဟုေပၚလာပါလိမ့္မည္။ (error ျပေနလည္း ကိစၥမရွိပါ။)
  8. OpenGTS Database ေဆာက္ဖို႕အတြက္ db ကို import လုပ္ပါမယ္။
  9. cd %GTS_HOME%\bin ေအာက္သို႕ျပန္၀င္ပါ။
  10. bat “-rootUser:root” “-rootPass:password” 

    ဟုရိုက္ၿပီးEnter ေခါက္ပါ။

(password ေနရာတြင္ ေျပာင္းထားေသာ password ကို ထည့္ေပးပါ။)

  1. db ေတြ Create လုပ္သြားတာ ျမင္ရပါလိမ့္မည္။
  2. Web Interface ကို Access လုပ္ရန္ system account တခု ဖြင့္ပါမယ္။
  3. bat Account –account:sysadmin –pass:password –create

(password ေနရာတြင္ကိုယ္ႀကိဳက္တာေပးပါ။)

  1. openGTS ထဲက ဖိုင္ကို Tomcat server ထဲထည့္ပါမယ္။ Build ေအာက္တြင္ track.war ကိုရွာပါ။
  2. cd %GTS_HOME%\bin ဟုျပန္ရိုက္ပီး ant track.war ဟုျပန္ရိုက္ပါ။

(PDF ထဲတြင္ မည္သည့္ xml, conf ဖိုင္မ်ားကို ျပင္ပီးတိုင္း compile ျပန္လုပ္ေပးရမယ္လို႕ ေျပာထားပါတယ္)

  1. Compile ၿပီးသြားလွ်င္ Build\track.war ဖိုင္ကို C:\Program Files\apache-tomcat\webapps ေအာက္သို႕ Copy ကူးထည့္ပါ။
  2. Browser ေခၚၿပီး http://localhost:8080/track/Track ကိုေခၚၾကည့္ပါ။

Virtualization & Server2008R2 Active Directory

Hello everyone. Long time no see.

Recently, I attend Japan IT Networking class on local country. Before I took that class,
I already passed the exam and class from “Mikrotik” – MTCNA Certificate. That’s why, I did not totally update this blog.

Here describe slideshare is one of the presentation file from my experience. For your future reference and who will want to learn, I share it.
So, stay with me.

Greeting from MYANMAR.

Make Microsoft Security Essentials Update Distribution Server~!

AntiVirus Solution ေတြထဲမွာ အေကာင္းစား Program ေတြအေျမာက္အျမားရွိပါတယ္။
ဒါေပမဲ့ အိမ္သံုး အေသးစားလုပ္ငန္းေတြအတြက္ တစ္ႏွစ္လိုု္င္စင္ဆိုတာ ကၽြန္ေတာ္တို႕ လို
ျမန္မာႏိုင္ငံသားေတြအတြက္ အဆင္မေျပပါဘူး။ ဒါေၾကာင့္ Microsoft ကေန Free ရေနတဲ့ Microsoft Security Essentials ကို သံုးျဖစ္ပါတယ္။ တခုရွိတာက အဲ့ဒီ MSE ဟာ
အေသးစားနဲ႕ အိမ္သံုးေလာက္ေတြအတြက္ပဲ ထုတ္ေပးတာျဖစ္ပါတယ္။ ၁၀လံုးသို႕မဟုတ္ ၁၀လံုးထက္ပိုသံုးခြင့္ေတာင္ ေပးမထားပါဘူး။ ဥပမာ စက္၁၀လံုးရွိရင္ တစ္လံုးခ်င္းစီ လုိက္ပီး
Update လုပ္ေပးရမွာပါ။ Update Distribution Server ပံုစံမ်ိဳး Feature လည္းထည့္
ေပးမထားပါဘူး။ အဲတာနဲ႕ ကၽြန္ေတာ္လည္း Googling ေပါ့။ လုပ္ထားတဲ့ မူရင္း Project ပိုင္ရွင္ရွိပါတယ္။ ဒီလင့္ခ္မွာ သြားေလ့လာလို႕ရပါတယ။္ http://rafaelwolf.com/?p=725
သူ႕အတိုင္းလိုက္လုပ္ၾကည့္ပါတယ္။ တခ်ိဳ႕ Dos command ေတြဟာလဲမွားေနတာေတြ႕ပါတယ္။
တကယ့္ UNC path update ကလဲ အလုပ္မလုပ္ပါဘူး။ ရေအာင္ လိုက္လုပ္ၾကည့္ရင္း
Windows Update Service ဖြင့္ခိုင္းလိုက္ Windows Update လုပ္ခိုင္းလိုက္နဲ႕အဆင္မေျပ ပါဘူး။ အဲေတာ့ ျမန္မာ့နည္း ျမန္မာဟန္ Copy လုပ္ဖို႕ စိတ္ကူးလိုက္ပါတယ္။ အဆင္လဲေျပ ပါတယ္။ MSE ဟာ Online Update လုပ္လိုက္တိုင္း သူ႕ရဲ႕ path လမ္းေၾကာင္း ဖိုင္နာမည္ကို ေျပာင္းလဲပစ္ပါတယ္။ပီးေတာ့ သူ႕ရဲ႕ သိမ္းတဲ့ Definitions Folder ဟာ XP နဲ႕ Windows 7 မွာ နည္းနည္းမူကြဲပါတယ္။ Windows 8 ကေတာ့ မစမ္းသပ္ရေသးပါဘူး။

Step 1 – Update Distribution Server အျဖစ္ အသံုးျပဳမဲ့စက္ကို Folder တစ္ခုေဆာက္ပီး Share ေပးထားပါ။ permission နဲ႕ security ကို everyone ေပး ထားပါ။

Step 2 – အင္တာနက္ရွိတဲ့စက္ကေန MSE update EXE ဖိုင္ mpam-fe ကို ေဒါင္းထားပါ။ ပီးရင္ WinRAR ျဖစ္ျဖစ္ တခုခုနဲ႕ Extract လုပ္ေပးပါ။

Step 3 – ခုန extract လုပ္ထားတဲ့ Folder ထဲက exe ဖိုင္ တစ္ဖိုင္ထဲကိုခ်န္ထားပီး က်န္တာအကုန္ကူးပီး Share လုပ္ထားတဲ့ Folder ထဲကိုထည့္ေပးပါ။ ဒါဆို Server ပိုင္း
လုပ္စရာကုန္ပါပီ။

Step 4 – Client ေတြဘက္ကိုေတာ့ Pre-configure Batch ဖိုင္တစ္ဖိုင္ကို Windows Startup ထဲထည့္ေပးပါ။ Logon Script အေနနဲ႕ သံုးလဲရပါတယ္။ ကၽြန္ေတာ္ ကေတာ့ Startup ထဲပဲ ထည့္ပါတယ္။ ဒါဆိုရင္ စက္တက္တိုင္းတက္တိုင္း Server ဆီကေန ဖိုင္ကို Update လုပ္ေနမွာျဖစ္ပါတယ္။

ႈImportant Notes: : ကၽြန္ေတာ္ပထမေျပာခဲ့တဲ့အတိုင္း Destination Folder Name ဟာစက္တခုခ်င္းစီ မတူပါဘူး။ ဒါေၾကာင့္ Client မွာ Startup ထည့္တိုင္း အဲ့ဒီ Client ရဲ႕ Destination Folder Name ကို Batch Script ထဲက Client Destination ေနရာမွာ သြားျပင္ေပးယံုပါပဲ။ အိုေက

ေအာက္ကဟာကို Copy ကူးပီး လုိအပ္သလိုျပင္ပါ။

@echo off
echo:
echo ———————————————————————-
echo “Batch Scripting By”
echo – Hla Tun ( ———- Co., Ltd )
echo ———————————————————————-
echo:
::Client Destination
set usoe=”%homedrive%\Documents and Settings\All Users\Application Data\Microsoft\Microsoft Antimalware\Definition Updates\{A48B189B-6869-484E-809A-F2EEB88A08C0}”
::Server Source
set ukh=”\\1.1.1.1\avupdate\mpam-fe”
echo:
echo Shutting Down Microsoft Malware Protection Center ~~!!
echo:
net stop msmpsvc
If exist “%usoe%\mpavdlta.vdm” goto upload
echo Update Files Not Exist~~
goto exit
echo:
:upload
echo:
echo Malware Protection Data Uploading …
echo:
xcopy %ukh% %usoe% /R /Y /Z
echo:
echo Starting Up Microsoft Security Client ~~!!
echo:
net start msmpsvc
echo:
echo ————————————————————————
echo Data Updating is Completed ! Finished !
echo ————————————————————————
echo Bye Bye ~! 
echo ————————————————————————
echo:
:exit
pause

How to install WindowsNT Service (Batch Program) ~!

# NT Service ထဲကို install လုပ္တဲ့ပံုစံပါ။ Google မွာရွာၾကည့္ရင္ေတာ့ Visual Studio သံုးပီးေတာ့ Variable ထည့္တဲ့ဟာေတြ၊ .Net Framework သံုးတဲ့ဟာေတြပဲ ထြက္လာပါတယ္။

# ခက္တာက ကၽြန္ေတာ္က အရင္တုန္းက World Of Warcraft Server လုပ္ထားဖူးေတာ့ Apache, MySQL တို႕ကို Batch Program နဲ႕ Run တာ ျမင္ဖူးထားပါတယ္။ အဲဒီေတာ့ေထြေထြ ထူးထူး မရွာေတာ့ပဲ စက္မွာသြင္းထားတဲ့ XAMPP ဘက္ကို ဦးလွည့္လိုက္ပါတယ္။ အထဲ Directory ထဲကို ၀င္ၾကည့္ပီး နည္းနည္း နမူနာယူလိုက္တယ္ေပါ့။ ကၽြန္ေတာ္ထည့္တာကေတာ့ တျခား Service ပါ။ ဒါေပမဲ့ ပံုစံကို example အေနနဲ႕ Notes မွတ္ပါမယ္။ ေနာက္ျပန္ၾကည့္လို႕ရတာေပါ့။

# Install Service

@echo off
echo:
echo Batch Scripting By Hla Tun ( _________________ Co., Ltd ) ~~~!
echo:
if “%OS%” == “Windows_NT” goto WinNT

:WinNT
echo:
echo Installing Service On Baby Computer!
echo:
“path” –install servicename -c “config_path”
echo:
echo Finished!
echo:
:exit
pause

# Uninstall Service

@echo off
echo:
echo Batch Scripting By Hla Tun ( _______________ Co., Ltd ) ~~~!
echo:

if “%OS%” == “Windows_NT” goto WinNT

:WinNT
echo:
echo Time To Say Goodbye Service ….
echo:
“path” –uninstall servicename -c “config_path”
echo:
echo Successfully Remove ~!
echo:
:exit
pause

How to install ownCloud~!

OwnCloudAdditional Information:
######################
Windows (XAMPP)
######################

ဘာမွျပင္စရာမလိုပါဘူး။ DB တခုေဆာက္ၿပီးေပၚလာတဲ့ Instructionအတိုင္းလိုက္လုပ္သြားယံုပါပဲ။

######################
Linux (Ubuntu)
######################

Linux မွာေတာ့ ျပသာနာရွိပါတယ္။ Permission ပိုင္းနည္းနည္းသတ္မွတ္ေပးရပါမယ္။ ႏို႕မို႕ဆို
တခုပီးတခုုပီး error ေပၚလို႕ၿပီးမွာမဟုတ္ပါဘူး။

> chown -R www-data:www-data /var/www/cloud/*
> chown www-data:www-data apps
> chmod 750 apps config
> chmod -R 770 data
> chown -R www-data:www-data data

ဆိုပီး သတ္မွတ္ေပးရပါမယ္။

>>>>>>> MDB2 error connect (BLAH BLAH BLAH) <<<<<<<

ဆိုပီး တက္လာခဲ့ရင္ /etc/www/owncloud/lib/setup.php ေအာက္မွာဒါေလးသြားျပင္ ေပး ရပါမယ္။
# $dbtableprefix=isset($options[‘dbtableprefix’]?$options[‘db’]:’oc_’;

ဆိုတဲ့ေနရာမွာ –

# $dbtableprefix=$options[‘dbtableprefix’];

ဒီဟာေလးကိုျပင္ထည့္ေပးရပါ့မယ္။ အသံုးျပဳတဲ့ DB ေပၚမွာ မူတည္ၿပီးေတာ့ ျပင္ေပးရမွာျဖစ္ပါတယ္။

How to Fix *No More Connection error* on XP SP2~!

No more# ကၽြန္ေတာ္တို႕ Windows XP သံုးၿပီး Network Sharing လုပ္က်တဲ့အခါမွာ ဒီလိုမ်ိဳး error  ကို ႀကံဳဖူးက်မွာပါ။

# ဥပမာ အင္တာနက္ဆိုင္ တစ္ဆိုင္ေပါ့။ Client ၁၅လံုးရွိတယ္ဆုိပါစို႕။ ၁လံုးမွာ Cafe Management Server နဲ႕ လာသံုးတဲ့သူေတြ အပ်င္းေျပေအာင္ MTV, Small Game, MP3 အစရွိသျဖင့္ Share ထားတက္ၾကပါတယ္။

# က်န္ ၁၄လံုးဆီကို Map Network Drive ပံုစံမ်ိဳးနဲ႕ Desktop မွာ တင္ေပးထားေလ့ ရွိပါတယ္။

# ဆိုင္က လူက် လာပါၿပီ။ ခ်စ္သူမ်ားေန႕ဆိုပါေတာ့။ စက္အျပည့္ေပါ့။ လူတိုင္းက အင္တာနက္သံုးရင္းနဲ႕ အပ်င္းေျပ သီခ်င္းနားေထာင္မယ္၊ zuma ေဆာ့မယ္၊ MTV ၾကည့္မယ္၊ ဘာဘာညာညာနဲ႕ Server ဆီက Resource ကိုလွမ္းသံုးပါၿပီ။

# ကဲ…အဲ့မွာကုိယ္ထိုင္ထားတဲ့ Server က NOS ကလဲ မဟုတ္ျပန္။ ရိုးရိုး XP ဆိုရင္ေတာ့ အေပၚက error မ်ိဳးေပၚရင္ ဒုကၡနဲ႕ လွလွ နဲ႕ စေတြ႕ပါၿပီ။

# DOS ျဖစ္တဲ့ XP ကို စတင္ေရးစဥ္ကတည္းက maximum Concurrent connection ကို ၁၀ ဆိုပီး ထည့္ေရးေပးလိုက္ပါတယ္။ အဲတာေၾကာင့္ A+, Networking သင္တန္းေတြမွာ workgroup ခ်ိတ္ရင္ ၁၀ လံုးထက္(သို႕) ၁၀လံုးထက္မပိုဘူးလို႕ သင္ခဲ့ရၾကပါတယ္။

# အဲဒီ error ကို ဒီ Patcher ေလးနဲ႕ ေျဖရွင္းလို႕ရပါတယ္။ file ကေတာ့ TCPIP.SYS ဆိုတဲ့ ဖိုင္ေလးပါ။

Credit to: : http://www.lvllord.de/

Download Here: : http://www.lvllord.de/download.php?url=en/EvID4226Patch223d-en.zip

# Maximum Concurrent Connection ကို 10 to 16,777,214 ထိ Change Limit သတ္မွတ္ေပးလို႕ရပါတယ္။

# ံHacker နဲ႕ Cracker သမားေတြကို ဘယ္လိုပဲျဖစ္ျဖစ္ ေက်းဇူးတင္ရမွာေတာ့ အမွန္ပါပဲ 🙂

Visual bcdeditor~!

bcdedit

# XP မွာဆိုရင္ေတာ့ boot.ini ဖိုင္ဆိုပီး ပါပါတယ္။ boot မတက္ေတာ့ရင္ ျပန္ create  လုပ္ေပးရပါတယ္။ မေရးတက္ရင္လည္းပူစရာမလိုပါဘူး။ တက္ေနတဲ့စက္ကေန copy ကူးပီး၊ ပုံမွန္တင္ေနက် Partition အပိုင္းဆုိရင္ ျပင္စရာမလိုပဲနဲဲ႕၊ တျခား Partition ေတြမွာ တင္ထားခဲ့ရင္ Partition နံပတ္ကိုေျပာင္းေပးယံုုပါပဲ။

# vista, 7 နဲ႕ Server 2008 တို႕မွာဆိုရင္ေတာ့ boot manager editor ဆိုပီး system information ဖိုင္ ini နဲ႕ မလာပဲနဲ႕ exe နဲ႕ ပါလာပါတယ္။ configuration အပိုင္းကလဲ ရႈပ္ပါတယ္။

# ျဖစ္တဲ့ျပသာနာက windows 7 တင္ပီးေတာ့မွ Server 2008 ကို Dual  တင္ လိုက္ တာပါ။ Server 2008 လဲတင္ပီးေရာ၊ windows 7 ပါမလာေတာ့ပဲနဲ႕ Server 2008 ပဲ တက္ပါေတာ့တယ္ 😀

# Gooogling လုပ္ၾကည့္ေတာ့ visual bcdeditor  ဆိုပီးသြားေတြ႕ပါတယ္။ သံုးရတာလဲ လြယ္ပါတယ္။ ကၽြန္ေတာ္ကေတာ့ Automatic Repair နဲ႕ပဲ ကိုင္လိုက္ပါတယ္။

# ျပန္တက္လာတဲ့အခါက်ေတာ့ OS Choice Menu နဲ႕ ျပန္တက္လာပါလိမ့္မယ္။ အိုေကသြားပီေပါ့ 🙂

MySQL Replication

sqlreplicate

ခုရက္ပိုင္းေပ်ာက္ေနျပန္ပါၿပီ။ မအားလပ္တာကတေၾကာင္း၊ 4Mbps Fiber Optics ကိုယ္တိုင္ကိုက SEA GAME အေၾကာင္းျပသျဖင့္လား၊ ဘာလားမသိပါ။ တခါ တခါ လံုး၀ကို Request Time Out က်သြားပါတယ္။ ငုတ္တုတ္ထိုင္ေနရတဲ့ရက္က မ်ားပါတယ္။  IT Director က ကၽြန္ေတာ့္ကို MySQL Database Server ကို Sync လုပ္ရန္ တာ၀န္ေပးပါတယ္။ ဒီထဲမွာ အဲဒီအပိုင္းကိုပဲ တာ၀န္ယူရပါတယ္။  ဒီထဲမွာ ဆိုတာက အမွန္က Database Server က Microsoft SQL Server ကိုသံုးထားပါတယ္။ အဲဒီ Database ကို opensource တခုျဖစ္တဲ့ MySQL ထဲကို ေျပာင္းထဲ့ပါမယ္။ အဲဒီ MySQL Server ကိုမွ ကၽြန္ေတာ္က ရံုးက MySQL Server ထဲကို လွမ္းၿပီးေတာ့ (Sync) Replicate လုပ္ေပးရမွာဗ်။ ကဲ.. စၾကရေအာင္။ အေျခခံေတာ့ရွိရမွာေပါ့ဗ်ာ။ ထပ္ေျပာမေနေတာ့ပါဘူး။ကၽြန္ေတာ္က ေရာသမေမႊ လုပ္တတ္ပါတယ္။ ဘာပဲျဖစ္ျဖစ္ အဆင္ေျပရင္ၿပီးတာပါပဲ။ GUI ေကာ၊ CUI ေကာ ခ်မယ္ေနာ္။ Ready !!!

ရွင္းရွင္းလင္းလင္းျဖစ္သြားေအာင္ Server Site (Remote Site) နဲ႕ Client Site ဆိုပီးခြဲေျပာပါမယ္။ Server Site က Master Server ျဖစ္ၿပီးေတာ့၊ Client Site ကေတာ့ Slave Server ေပါ့။ Master Server က DB တစ္ခုလံုးကို Slave Server က လွမ္းၿပီး Sync လုပ္မယ္။ ဘယ္ platform ပဲျဖစ္ျဖစ္ဒီနည္းသံုးလို႕ရပါတယ္။ Linux ပဲျဖစ္ျဖစ္၊ Windows ပဲျဖစ္ျဖစ္ပါ။ သံုးတတ္ရင္လြယ္ပါတယ္ :P(မသံုးတတ္ရင္ မလြယ္ ဘူးေပါ့)။ ကၽြန္ေတာ္လုပ္တုန္းကေတာ့ Master Server က Windows 7 ပါ။ Slave Server ကေတာ့ Ubuntu Server ပါ။ အဲ့ေတာ့ကာ ေျပာရင္ရႈပ္ေနမွာဆိိုးလို႕ Windows to Windows ဟာပဲ ေျပာျပပါမယ္။

# ပထမဆံုး XAMPP ကို Install လုပ္လိုက္ပါ။

# ၿပီးေတာ့ phpmyadmin လည္းသံုးပါမယ္။ အဲ့ဒီအတြက္ေၾကာင့္ MySQL Setting ကို နည္းနည္းျပင္ဖို႕လိုပါမယ္။ XAMPP ရဲ႕ default MySQL Password က blank ပါ။ အဲေတာ့ Security ရွိသြားေအာင္ Password ထည့္မယ္၊ေျပာင္းပါမယ္။ ၿပီးရင္အဲ့ေျပာင္းထားတဲ့ Password ကို xampp\phpmyadmin\config.inc.php ထဲမွာ သြားေပးရပါမယ္။ နည္းနည္းေတာင္ အေသးစိတ္ေနပါပီ။ တိုတိုေျပာရရင္ phpmyadmin သံုးလို႕ရေအာင္ အရင္လုပ္ပါမယ္။ MySQL Server ကို stop အရင္လုပ္လိုက္ပါမယ္။

# အခုေျပာေနတာ Master Server ဘက္ျခမ္းေရာ၊ Slave Server ဘက္ျခမ္းအထိပါ လုပ္ေပးရမွာပါ။ ကဲ… ၿပီးရင္ Master Server ဘက္ျခမ္းရဲ႕ MySQL ကို Master ျဖစ္ေအာင္ လုပ္မွာျဖစ္တဲ့အတြက္ config ခ်ပါမယ္။ အေသးစိတ္သိခ်င္ ရင္ေတာ့ official site မွာသြားဖတ္ၾကည့္ႏိုင္ပါတယ္။

# XAMPP ရဲ႕ MySQL Config ဆိုတာေလးကို ကလစ္တခ်က္ႏွိပ္လိုက္ပါ။ အဲဒီမွာ my.ini ဆိုတာေလးကို ႏွိပ္လိုက္ပါ။ notepad နဲ႕တက္လာပါလိမ့္မယ္။

# အဲဒီမွာ [mysqld] section မွာ ႏွစ္ေၾကာင္းသြားေရးပါမယ္။ log-bin=mysql-bin နဲ႕ server-id=1 ဆိုပီးသြားေရးေပးရပါမယ္။ နမူနာေအာက္မွာျပထားပါတယ္။

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port= 3306
socket = “C:/xampp/mysql/mysql.sock”
basedir = “C:/xampp/mysql”
tmpdir = “C:/xampp/tmp”
datadir = “C:/xampp/mysql/data”
pid_file = “mysql.pid”
log-bin=mysql-bin
server-id=1

# ၿပီးရင္ save လိုက္ပါ။ log-bin=mysql-bin ဆိုတာက Master ျဖစ္ဖို႕အတြက္ binlogging က enable ျဖစ္ေနရပါမယ္။ ဒါမွ Slave က Sync လွမ္းလုပ္တဲ့အခါက်ရင္ တိုက္ၾကည့္စစ္ေဆးႏိုင္ေအာင္အတြက္ျဖစ္ပါတယ္။ ေနာက္က server-id=1 ဆိုတာကေတာ့ ကၽြန္ေတာ္တို႕ Computer မွာသံုးတဲ့ Internet Protocol (IP) နဲ႕တူပါတယ္။ တစ္စက္နဲ႕ တစ္စက္ လွမ္းခ်ိတ္ဖို႕ IP လိုသလိုမ်ိဳးေပါ့။ သူကေတာ့ server-id နဲ႕သြားပါတယ္။ my.ini မွာ လုပ္ဖို႕လိုတာဒါအကုန္ပါပဲ။

# သာမန္ဆိုရင္ေျပာတာပါ။ တျခား အသံုးျပဳလို႕ရတဲ့ inno_db_flush ဆိုပီး အမ်ားႀကီး ရွိပါေသးတယ္။ MySQL Server ကို start ျပန္လုပ္လိုက္ပါ။ မွားၿပီး config ခ်မိရင္ status မွာ နီနီစာသားေတြ ေပၚလာပီး debug error ထုတ္ျပပါလိမ့္မယ္။

# Master ထဲက database ေတြကို အရင္ဆံုး dump လုပ္ပါမယ္။ ၿပီးရင္ slave ထဲထည့္ဖို႕ေပါ့။ dump လုပ္ရျခင္းအေၾကာင္းအရင္းကေတာ့ ခုနက Master ရဲ႕ bin-log ေတြနဲ႕ tables postion စတာေတြကို slave မွာ connect မလုပ္ခင္ တူေနဖို႕အတြက္ပါပဲ။ MySQL ထဲကို ၀င္ပါမယ္။

# > myql -uroot -p

# database ကို လက္ရွိရွိေနတဲ့ tables position နဲ႕ bin log မွာ ရပ္ေနေစဖို႕အတြက္ lock ခ်ပါမယ္။

# mysql > flush tables with read lock;

# mysql > show master status; ဆိုပီးလုပ္လိုက္ရင္ master-log-file နဲ႕ master-log-pos ရဲ႕ data ေတြကိုလာျပပါလိမ့္မယ္။ အဲတာေတြကို စာရြက္မွာ မွတ္လိုက္ပါ။ ဒါဆို အိုေကပါပီ။ၿပီးရင္….

# quit နဲ႕ထြက္လိုက္ပါ။ စတင္ၿပီး dump လုပ္ပါမယ္။

> mysqldump -uroot -p –all-databases –master-data > fulldb.db

ဆိုပီး shell ထဲမွာ Enter ေခါက္လိုက္ပါ။ ဒါဆို shell ရဲ႕ path လမ္းေၾကာင္းထဲမွာ ခုနက dump ေဒတာ ေရာက္ရွိေနပါလိမ့္မယ္။ ၿပီးရင္ lock ျပန္ျဖည္ေပးရပါမယ္။ ကၽြန္ေတာ္ကေတာ့ slave server ဘက္ျခမ္းမွာ db ကို execute လုပ္ၿပီးမွ unlock tables; လုပ္ပါတယ္။ error တက္ဖူးထားလို႕ပါ 😛

> unlock tables;

# ဒါဆိုရင္ေတာ့ Master ဘက္အျခမ္းကၿပီးသင့္သေလာက္ၿပီးပါၿပီ။ ကိုယ့္ကို လာခ်ိတ္ထားတဲ့ slave host ကို ၾကည့္တာေလာက္ပဲ က်န္ပါေတာ့တယ္။

# Slave ဘက္အျခမ္းကို သြားက်အံုးစို႕။ ခုနက Master အတိုင္း my.ini မွာ ႏွစ္ခုပဲ သြားျပင္ပါမယ္။ ဘာျဖစ္မယ္လို႕ ထင္ပါသလဲ။ server-id ပါ။ မတူတာေပးလိုက္ပါ။ ကၽြန္ေတာ္ကေတာ့ server-id=2 လို႕ေပးပါတယ္။ၿပီးရင္ report-host ထည့္ပါမယ္။ အဲဒီလိုထည့္ပါမွ phpmyadmin မွာတက္ၾကည့္ရင္ေပၚပါလိမ့္မယ္။ report-host=sql-slave ေပါ့။ (sql-slave) ဆိုတာ local မွာဆိုရင္ေတာ့ computer name ေပါ့၊ Internet မွာဆိုရင္ေတာ့ Host Name ေပါ့ဂ်ာ။ (ေမာလိုက္တာ…   :P)

# ကဲ.. ၿပီးရင္ ခုနက Master Server က dump ကုိ Slave Server ထဲ Execute လုပ္ပါမယ္။

> mysql -uroot -p < fulldb.db

ဒါဆိုရင္ Master Server ထဲက db ေတြ အကုန္ေရာက္ကုန္ပါပီ။ Master Server ကိုခ်ိတ္ဖို႕အတြက္ လိုအပ္တဲ့ MySQL Entry ေတြရိုက္ထည့္ရပါဦးမယ္။ Master Server မွာေပးထားတဲ့ password ပါျဖစ္သြားပါမယ္။ လိုအပ္တဲ့အတြက္ MySQL Service ကို restart လုပ္ေပးသင့္ရင္ လုပ္ေပးပါ။

# mysql> use mysql;

# mysql> change master to

> master_log_file = ‘mysql-bin.0004’ ,

> master_log_pos = 199;

ဆိုပီး ခုနက Master Server မွာ Show Master Status လုပ္တုန္းက ေပၚလာတဲ့ entry ေတြကို ထည့္ေပးရပါမယ္။ ကၽြန္ေတာ္ခုထည့္ထားတဲ့ဟာက အစမ္းပါ။ ကိုယ့္ဖာသာေပၚလာတဲ့ဟာကို ေျပာင္းထည့္ေပးရပါမယ္။

# ၿပီးရင္ Master Server ကိုသြားလိုက္ပါ။ phpmyadmin သံုးပါမယ္။

# ၀င္၀င္ခ်င္းမွာပဲ Replication ဆိုတဲ့ Tab ကိုရွာလိုက္ပါ။ မေတြ႕ဘူးဆိုရင္more နဲ႕ ဆက္ၾကည့္ပါ။ ၿပီးရင္ ႏွိပ္ပါ။

# Master Replication ဆိုတဲ့ေနရာမွာ ေပၚေနမွာျဖစ္ပါတယ္။ Replication User တစ္ခုေဆာက္လုိက္ပါ။ အဲဒီအေကာင့္နဲ႕ Slave Server မွာ phpmyadmin ဆက္သံုးပါမယ္။

# Slave Server မွာလဲ ခုနအတိုင္းလုပ္ပါ။ ဒါေပမဲ့ ခ်ိတ္ရမဲ့ host, username, password တို႕လာေတာင္းပါလိမ့္မယ္။ host ကေတာ့ Master Server ရဲ႕ name  ေပါ့။ username ကေတာ့ ခုနက Master မွာလုပ္ခဲ့တဲ့ Replication အေကာင့္ပါ။ ၿပီးရင္ GO လိုက္ပါ။

# shell ထဲက၊ MySQL prompt ထဲကေန …

# mysql > start slave; ဆိုပီး ရိုက္ထည့္လိုက္ပါ။ ဒါဆိုရင္ စတင္ အလုပ္လုပ္ပါၿပီ။

# phpmyadmin မသံုးခ်င္ဘဲ CUI သမားမ်ားကေတာ့ ခုနက change master to ဆိုတဲ့ေနရာမွာ master-host, master-user, master-password ဆိုပီးထည့္ႏိုင္ပါတယ္။

# report-host ထည့္ထားတဲ့အတြက္ေၾကာင့္ phpmyadmin မွာ slave host ဆို ပီးျပေနပါလိမ့္မယ္။

# Slave Server ကေန Master Server ဆီ အလုပ္၊လုပ္မလုပ္ လွမ္းၾကည့္ လို႕ရပါတယ္။

# mysql > show slave status\G; ဆိုပီး Enter ေခါက္လိုက္ပါ။

master-host ဆိုတဲ့ ေနရာမွာ Waiting for sync from master server လို႕ေပၚေနရင္ အိုေကေနပါၿပီ။

# Master Server ကေနလဲ ကိုယ့္ဆီ Connected ျဖစ္ေနတဲ့ Slave ကိုၾကည့္လို႕ရပါတယ္။

# mysql > show slave hosts;

ဒါဆိုရင္ေတာ့ Master Server ဆီက ဘယ္ Database ပဲ create လုပ္လုပ္၊ drop လုပ္လုပ္ အၿမဲတမ္း Sync ျဖစ္ေနတဲ့အတြက္ေၾကာင့္ Slave Server ဆီမွာ effective ျဖစ္ေနမွာပါ။ 🙂

Open Point of Sale System – Myanmar (PHP)

prnscr

ဒီရက္ပိုင္း Post အသစ္ မတင္ျဖစ္တာၾကာပါၿပီ။ ဘာေၾကာင့္လဲဆိုေတာ့ကာ မီးပ်က္ရျခင္း (အဲေလ) Project တစ္ခု စမ္းသပ္ေနလို႕ပါ။ လိုအပ္ခ်က္ တခုေၾကာင့္ Point Of Sale System နဲ႕ပတ္သက္ၿပီး ေလ့လာေနလို႕ပါ။ Notes အေနနဲ႕ပဲ ဆိုေတာ့ သိပ္ၿပီး ရွည္ရွည္ေ၀းေ၀း မေျပာေတာ့ပါဘူး။ အေျခခံ Linux knowledge, Apache, MySQL, PHP နဲ႕ shell command ေတြ သိထားဖို႕လိုပါတယ္။ လိုအပ္တာနဲ႕ ထိေရာက္တဲ့ cofig ဖိုင္ေတြကို ခ်ျပေပးသြားပါမယ္။ ပီးေတာ့ Open source ျဖစ္တဲ့အတြက္ မူရင္း English version နဲ႕ ကၽြန္ေတာ္ Modify လုပ္ထားတဲ့ ျမန္မာ version ကိုပါ လင့္မွာ တင္ေပးပါ့မယ္။

Thanks & Credit to *Developer* …

Def: of Point of Sale System

                  Point of Sale System ကို စူပါမားကတ္ေတြ၊ ေစ်းဆိုင္ေတြမွာသံုး က်ပါတယ္။ ေတာ္ေတာ္မ်ားကေတာ့ License နဲ႕ဟာေတြျဖစ္ပါတယ္။ ႏိုင္ငံျခား အရည္အေသြးျမင့္ ေတာ္ေတာ္မ်ားမ်ားရွိပါတယ္။ ျမန္မာႏိုင္ငံမွာေတာ့ ေကာင္းေပ့၊ ဆိုေပ့ ဆိုၿပီး အသံုးျပဳေနက်တာေတာ္ေတာ္မ်ား ရွိပါတယ္။ အဓိကကေတာ့ သူတို႕ကို မႀကိဳက္လို႕ စမ္းသံုးၾကည့္ခ်င္တဲ့ လူမ်ားအဖို႕ပါ။ ပိုက္ဆံလည္းမကုန္ပါ။ ၀ယ္သံုးတဲ့ အတိုင္း Feature ေတြ စံုပါတယ္။

ကဲ .. စတင္ၾကပါစုိ႕။ ဥပမာေပါ့ဗ်ာ… ကၽြန္ေတာ္က စတိုးဆိုင္တစ္ခု ကို လုပ္ေပးဖို႕ တာ၀န္က်တယ္။ အဲဒီဆိုင္မွာ ပစၥည္းေတြက စံုတယ္။ အမ်ားႀကီးဘဲ။ အဲတာ ကို စုပီး မွတ္ထားဖို႕က စာရင္းလုပ္ထားဖို႕လိုတယ္။ ကြန္ပ်ဳဳတာမွာလည္း အဲ့လို႕ပဲ။ အဲဒီအတြက္ Database Server ေတာ့လိုတယ္။ ၿပီးေတာ့ အခုလုပ္မဲ့ဟာက browser base ျဖစ္တဲ့အတြက္ Web Server လည္း လိုတယ္။ အဲဒီေတာ့ သြင္းရမွာေပါ့ ဗ်ာ 😀 ။ ကၽြန္ေတာ္က ေတာ့ XAMPP ဘဲ အားကိုးလိုက္ပါတယ္။ ႀကိဳက္တဲ့ဟာ သြင္းခ်င္လည္း သြင္းပါ။ browser ကိုေျပာတာေနာ္။ ကိုယ့္လူ .. ။

၁။ ပစၥည္းေတြကို သိမ္းဆည္းမွတ္ဖို႕ရာ  db လိုတယ္။ အဲ့ဒီအတြက္ MySQL

၂။ MySQL ထဲမွာ DB တစ္ခုအရင္ေဆာက္။ ကၽြန္ေတာ္ကေတာ့ pos လို႕ေပးတယ္။

၃။ ေဒါင္းထားတဲ့ဟာကို ျဖည္ၿပီး opensourcepos\database ေအာက္ database.sql ကို Execute လုပ္ေပးပါ။

၄။ က်န္တဲ့ opensourcepos ေအာက္က ဖိုင္ေတြကို Web Server ဆီ Upload လုပ္မယ္။

၅။ opensourcepos\application\config\database.php.tmpl ကို database.php ဆိုပီး rename လုပ္ေပးပါ။

၆။ ၿပီးရင္ notepad နဲ႕ပဲ ျဖစ္ျဖစ္၊ Linux သမားဆိုရင္ nano နဲ႕ပဲျဖစ္ျဖစ္ database.php ကို ေခၚတင္ၿပီးေတာ့ database name, username, password ေတြကို ခ်ိတ္ဆက္ဖို႕ အတြက္ ထည့္သြင္းေပးပါ။ save မွတ္ပါ။ ဒါမွ MySQL db ကိုခ်ိတ္ဆက္မႈရမွာပါ။

၇။ Browser ထဲကေန localhost  ကို ေခၚၾကည့္လိုက္ပါေတာ့ ။

ဒါဆိုရင္ ၿပီးပါၿပီ။

မူရင္း sourceforge ကေန ေဒါင္းလည္း ရပါတယ္။

http://sourceforge.net/projects/opensourcepos/

ျမန္မာ version ကေတာ့ အခု Post ေရးေနတဲ့အခ်ိန္အတြင္းမွာ Login Page အထိပဲ

ရႊိဳင္းထားရပါေသးတယ္။ အလုပ္လည္း တဖက္မို႕ပါ။ ေနာက္အခ်ိန္ရရင္ zip ျပန္ခ်ံဳ႕ပီး  လင့္ခ္ေပးသြားပါမယ္။