Transcript
Page 1: การติดตั้งโปรแกรม PDN 2013

การตดตงโปรแกรม PDN 2013 ตวอยาง network layout แสดงการเชอมโยงองคประกอบของระบบ

Install ClientInstall Client

PDN2013

PDN2013

HDCdatabase

HDCdatabase

TCP3306

(read only)

TCP 443(HTTPS)TCP 22

(install only)

PDN2013database

PDN2013database

TCP 3306(read/write)

PDG2013

PDG2013

TCP 9913(PDG)

(encrypted)

ขนตอนการตดตงระบบ

1. ตรวจสอบ config พนฐานของ OS ปด SELinux โดยควรม config ลกษณะดงน

# cat /etc/selinux/config … SELINUX=disabled

optimize sysctl # vi /etc/sysctl.conf เพมบรรทดนททายไฟล vm.swappiness = 10 ท าการ load config ขนมาใหม # sysctl -p

config iptables ใหสามารถ connect เขาหา port 443 (HTTPS) ได

2. ตดตง Java7 (RPM) # rpm -Uvh jdk-7u13-linux-x64.rpm ถาเตอน error ตดตง pack file ไมตองสนใจ

Page 2: การติดตั้งโปรแกรม PDN 2013

config JAVA_HOME environment # vi /etc/profile --- เพมขอความนททายไฟล export JAVA_HOME=/usr/java/jdk1.7.0_13 export PATH=$JAVA_HOME/bin:$PATH

run ค าสง export ทงสองบน command line เพอใหมผลทนท # export JAVA_HOME=/usr/java/jdk1.7.0_13 # export PATH=$JAVA_HOME/bin:$PATH

3. ตดตง tomcat

# cd /usr/local # gzip -dc ~/pdn2013/apache-tomcat-7.0.35.tar.gz |tar xf - # ln -s apache-tomcat-7.0.35/ apache-tomcat7 # cd ~/pdn2013/ # cp tomcat732 /etc/init.d/tomcat7 # chmod 755 /etc/init.d/tomcat7 # chkconfig --add tomcat7 # chkconfig --list tomcat7

แกไข bin/catalina.sh แลวท าการเพมทบรเวณหลง comment ดานบน # cd /usr/local/apache-tomcat7 # vi bin/catalina.sh ไปททาย comment แรก แลวเพม config ดงน CATALINA_OPTS="-server -noverify -Xms512M –Xmx4G -XX:MaxPermSize=256M

-XX:PermSize=256M -XX:+UseParallelGC" (บรรทดเดยวกน) * จงหวดทมฐานขอมลขนาดใหญสามารถขยายจ านวน memory ท tomcat ใชไดท parameter -Xmx

แกไข conf/context.xml # vi conf/context.xml ลบ comment ทครอมบรรทดนออก <Manager pathname="" />

Page 3: การติดตั้งโปรแกรม PDN 2013

ลบ default app ทมากบ tomcat ออกใหหมด (ใน <tomcat>/webapps) ใหเหลอแต ROOT ตวเดยว # cd webapps # ls # rm -rf docs examples host-manager manager

4. config tomcat SSL

ตรวจสอบวา set environment JAVA_HOME แลวหรอไม # echo $JAVA_HOME ถาไมม ให set แบบ manual ส าหรบการ login ครงน # export JAVA_HOME=/usr/java/jdk1.7.0_13 * เปลยน directory ตามทอยจรงของ JDK

ไปอยใน path ทจะเกบไฟล certificate กอน # cd ~/pdn2013

สราง public key pair ส าหรบ server # keytool -genkey -alias tomcat -validity 3650 -keyalg RSA ใส password เชน pdn2013xxxxx (ใสรหส สสจ. แทน xxxxx)

เมอถาม first and last name ใหใส localhost และปอนขอมลอนใหตรงกบจงหวดของตนเอง ตวอยางการปอนรายละเอยด เชน What is your first and last name? [Unknown]: localhost What is the name of your organizational unit? [Unknown]: IT What is the name of your organization? [Unknown]: MOPH_SSJ_xxxxx <<=============== เปลยนเปนรหส สสจ. What is the name of your City or Locality? [Unknown]: Muang <<=============== เปลยนเปนชออ าเภอ What is the name of your State or Province? [Unknown]: Bangkok <<=============== เปลยนเปนชอจงหวด What is the two-letter country code for this unit? [Unknown]: TH Is CN=localhost, OU=IT, O=MOPH_SSJ_xxxxx, L=Muang, ST=Bangkok, C=TH correct? ถาม password ครงทสอง ให enter ผานไปเลย

Page 4: การติดตั้งโปรแกรม PDN 2013

ระบบจะมการสราง file .keystore ท home directory ของ user root ( /root ) # ls –l ~root/.keystore

# keytool -export -alias tomcat -file server.crt ปอนรหสผานเหมอนเดม (pdn2013xxxxx) จะไดไฟลชอ server.crt บนเครอง

Import key เพอให Java ยอมรบ key ใหมทสรางขน # keytool -import -file server.crt -keystore "$JAVA_HOME/jre/lib/security/cacerts" ปอนรหสผานเปน changeit แลวตอบ yes ตวอยางหนาจอเปนลกษณะดงน # keytool -import -file server.crt -keystore "$JAVA_HOME/jre/lib/security/cacerts" Enter keystore password: Owner: CN=localhost, OU=IT, O=MOPH_SSJ_xxxxx, L=Muang, ST=Bangkok, C=TH Issuer: CN=localhost, OU=IT, O=MOPH_SSJ_xxxxx, L=Muang, ST= Bangkok, C=TH Serial number: b647ae3 Valid from: Tue Feb 05 14:46:09 ICT 2013 until: Fri Feb 03 14:46:09 ICT 2023 Certificate fingerprints: MD5: F4:86:C7:DC:EC:5E:B7:94:EA:… SHA1: AD:DB:85:CD:41:A2:3C:F0:87:8E:… SHA256: 29:4D:D8:D3:3B:3A:AF:F4:FD:21:44: … Signature algorithm name: SHA256withRSA Version: 3 Extensions: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: E4 7A 2A … ] ] Trust this certificate? [no]: yes Certificate was added to keystore

Page 5: การติดตั้งโปรแกรม PDN 2013

* ถาใสผด ตองการลบ key ออกใหใชค าสง # keytool -delete -alias mykey -keystore "$JAVA_HOME/jre/lib/security/cacerts"

แกไข <tomcat>/conf/server.xml ซงจะมตวอยาง config ของ port 8443 อย ใหแกเปนดงน # vi /usr/local/apache-tomcat7/conf/server.xml <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"

enableLookups="false" maxThreads="150" acceptCount="100" minSpareThreads="25" keystoreFile="/root/.keystore" keystorePass="pdn2013xxxxx" /> * เปลยน xxxxx เปนรหส สสจ.

restart tomcat # service tomcat7 restart

ตรวจสอบวาม process java ท าการเปด port 443 อยหรอไม # netstat -atnp |grep LIST

เปด browser แลวทดลอง connect เขา tomcat server port 443 เชน https://xx.xx.xx.xx (เนนวาเปน https) จะตองเหนหนา tomcat ดงรป

Page 6: การติดตั้งโปรแกรม PDN 2013

5. สราง และ restore database ส าหรบ pdn2013 # mysqladmin –u <user> –h <ip> –p create pdn2013 ใสรหสผาน # mysql –u <user> –h <ip> –p pdn2013 < pdn2013-db-20130201.sql ใสรหสผาน

ทดสอบ connect เขาฐานขอมล pdn2013 วามตารางหรอไม # mysql –u root –p pdn2013 mysql> show tables mysql> exit * ชอฐานขอมลสามารถตงชอไดตามความสะดวก ชอ pdn2013 เปนเพยงตวอยางเทานน

6. ตดตงโปรแกรม pdn web application copy ไฟล config 4 files ไปยง /etc/pdn2013 # mkdir /etc/pdn2013 # cp dbms.properties provisDbms.properties pdn2013.properties /etc/pdn2013/

แกไขรายละเอยดในแตละไฟลดงน - pdn2013.properties

# cd /etc/pdn2013 # vi pdn2013.properties แกรหส สสจ. # SSJ service place ID provinceServicePlaceID = xxxxx

- dbms.properties

# vi dbms.properties แกไข IP, ชอ database, username, password ของ pdn2013 dataSource.driverClassName=com.mysql.jdbc.Driver dataSource.url=jdbc:mysql://127.0.0.1/pdn2013?useUnicode=yes&characterEncoding=UTF-8 dataSource.username=xxxx dataSource.password=xxxxxxxxx

- provisDbms.properties

# vi provisDbms.properties แกไข IP, ชอ database, username, password ของ HDC

Page 7: การติดตั้งโปรแกรม PDN 2013

dbmsServer = xxxxx databaseName = xxxxx dbmsUsername = xxxxx dbmsPassword = xxxxx

ตดตง pdn key ทไดจากสวนกลาง ( pdnkey-XXXXX.jks (XXXXX => รหส สสจ) ) (ไฟลน แตจะจงหวดจะไดไมเหมอนกน และใชงานขามจงหวดกนไมได กรณาตดตอสวนกลาง หากทานยงไมไดไฟลน) # cp pdnkey-xxxxx.jks /etc/pdn2013

สดทายจะม config ไฟลทงหมด 4 ไฟล # ls –l /etc/pdn2013 -rw-r--r-- 1 root root 201 Feb 5 15:09 dbms.properties -rw-r--r-- 1 root root 917 Feb 5 15:06 pdn2013.properties -rw-r--r-- 1 root root 2551 Feb 5 15:20 pdnkey-xxxxx.jks -rw-r--r-- 1 root root 349 Feb 5 15:19 provisDbms.properties

deploy โปรแกรมลงใน tomcat # cd ~/pdn2013 # cp pdn-YYYYMMDD.war /usr/local/apache-tomcat7/webapps/pdn2013.war

ทดลอง monitor log ของ pdn2013 เพอดวาสามารถท างานไดถกตองหรอไม โดยในการเปดโปรแกรมในชวงแรกจะใชเวลานาน เนองจากโปรแกรมจะตรวจสอบโครงสราง HDC วามตารางครบตามมาตรฐานหรอไม # cd /usr/local/apache-tomcat7/logs # tail –f pdn2013.log ตวอยางการเรมตนโปรแกรมจะม log ลกษณะดงน StdlibBootStrap 1- Stdlib BootStrap initialized AppBootStrap 1- start AppBootStrap... Class 1- AppConfig initialize() start... ProvisStatusUpdateJob 1- update provis raw status done... Class 1- loading config from /etc/pdn2013/pdn2013.properties Class 1- [config] using default pdgServerPort [9913] Class 1- [config] using default logStdSyncBeanDetail [false] Class 1- [config] using default provisStructureType [STANDARD] Class 1- [config] using default checkCaptcha [true] Class 1- load config from file done.

Page 8: การติดตั้งโปรแกรม PDN 2013

Class 1- loading provis config from /etc/pdn2013/provisDbms.properties Class 1- province spCodeList #1 size = 177 Class 1- province spCodeList #2 size = 167 Class 1- loading provis structure from /usr/local/apache-tomcat7/webapps/pdn2013/WEB-INF/resource/provis-structure.groovy Class 1- provis table entries = 43 Class 1- parse provis structure done. all ok = true Class 1- load provis structure done. Class 1- AppConfig initialize() done. AppBootStrap 1- == config detail == appVersion : 5.0.0b (1/1/2556/01) provinceServicePlaceID : xxxxx provisStructureType : STANDARD provisSyncTime : 21:00:00 provisSyncAllowDate : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ...] provisSyncFromYear : 2556 startProvisThreadOnStartup : true startStdSyncThreadOnStartup : true provisSyncBatchSize : 500 pdgServerAddress : 164.115.5.56 pdgServerPort : 9913 pdgSendSize : 1000 pdgSyncOnStartup : true logStdSyncBeanDetail : false checkCaptcha : true provinceServicePlaceCodeList : 177 sp(s) provinceServicePlaceCodeList2: 167 sp(s) provinceCode : xx runtimeDataPath : /usr/local/apache-tomcat7/temp/pdn2013 runtimeImagePath : /usr/local/apache-tomcat7/temp/pdn2013/image runtimeProvisSyncResultPath : /usr/local/apache-tomcat7/temp/pdn2013/provisSync provisSyncProgressFilePath : /usr/local/apache-tomcat7/temp/pdn2013/provisSyncProgress.properties cacertsFilePath : /usr/local/apache-tomcat7/webapps/pdn2013/WEB-INF/resource/mycacerts.jks pdnKeyFilePath : /etc/pdn2013/pdnkey-xxxxx.jks AppBootStrap 1- initial cache done.

Page 9: การติดตั้งโปรแกรม PDN 2013

StdSyncDataRegistry 1- StdSyncDataRegistry init done. ProvisService 1- update raw provis table status: PERSON status = OK ProvisService 1- update raw provis table status: ADDRESS status = OK ProvisService 1- update raw provis table status: DEATH status = OK ProvisService 1- update raw provis table status: CARD status = OK ProvisService 1- update raw provis table status: DRUGALLERGY status = OK ProvisService 1- update raw provis table status: HOME status = OK ProvisService 1- update raw provis table status: SERVICE status = OK ProvisService 1- update raw provis table status: APPOINTMENT status = OK ProvisService 1- update raw provis table status: ACCIDENT status = OK ProvisService 1- update raw provis table status: DIAGNOSIS_OPD status = OK ProvisService 1- update raw provis table status: PROCEDURE_OPD status = OK ProvisService 1- update raw provis table status: DRUG_OPD status = OK ProvisService 1- update raw provis table status: CHARGE_OPD status = OK ProvisService 1- update raw provis table status: ADMISSION status = OK ProvisService 1- update raw provis table status: DIAGNOSIS_IPD status = OK ProvisService 1- update raw provis table status: PROCEDURE_IPD status = OK ProvisService 1- update raw provis table status: DRUG_IPD status = OK ProvisService 1- update raw provis table status: CHARGE_IPD status = OK ProvisService 1- update raw provis table status: SURVEILLANCE status = OK ProvisService 1- update raw provis table status: WOMEN status = OK ProvisService 1- update raw provis table status: FP status = OK ProvisService 1- update raw provis table status: EPI status = OK ProvisService 1- update raw provis table status: NUTRITION status = OK ProvisService 1- update raw provis table status: PRENATAL status = OK ProvisService 1- update raw provis table status: ANC status = OK ProvisService 1- update raw provis table status: LABOR status = OK ProvisService 1- update raw provis table status: POSTNATAL status = OK ProvisService 1- update raw provis table status: NEWBORN status = OK ProvisService 1- update raw provis table status: NEWBORNCARE status = OK ProvisService 1- update raw provis table status: DENTAL status = OK ProvisService 1- update raw provis table status: SPECIALPP status = OK ProvisService 1- update raw provis table status: NCDSCREEN status = OK ProvisService 1- update raw provis table status: CHRONIC status = OK ProvisService 1- update raw provis table status: CHRONICFU status = OK ProvisService 1- update raw provis table status: LABFU status = OK

Page 10: การติดตั้งโปรแกรม PDN 2013

ProvisService 1- update raw provis table status: COMMUNITY_SERVICE status = OK ProvisService 1- update raw provis table status: DISABILITY status = OK ProvisService 1- update raw provis table status: ICF status = BAD_STRCTURE ProvisService 1- update raw provis table status: FUNCTIONAL status = OK ProvisService 1- update raw provis table status: REHABILITATION status = OK ProvisService 1- update raw provis table status: VILLAGE status = OK ProvisService 1- update raw provis table status: COMMUNITY_ACTIVITY status = OK ProvisService 1- update raw provis table status: PROVIDER status = OK AppBootStrap 1- start ProvisSyncThread done. StdSyncThread 1- [sct] pdg-sync thread initialized AppBootStrap 1- start StdSyncThread done. StdSyncThread 1- [sct] starting pdg-sync thread... AppBootStrap 1- set StdSyncThread data sync = true AppBootStrap 1- fix workingSp of user province to be xxxxx. done. AppBootStrap 1- App BootStrap init done. Class 1- [pvt] this location (xxxxx) covers area [...] Class 1- [pvt] allow date list: [1, 2, 3, 4, 5, 6, 7, 8, ...] Class 1- [pvt] sync from year : 2556 Class 1- [pvt] sync time : 21:00:00 Class 1- [pvt] num all sp list: 167 Class 1- [pvt] initialize done.

7. เขาใชงานระบบ Login เขาสระบบ โดยใช browser เขาไปยง URL ดงน https://xxx.xxx.xxx.xxx/pdn2013 จะไดลกษณะหนาจอดงน

ระบ username เปน province ระบ password (default) เปน pdn20138141 ระบ captcha ตามทเหนบนหนาจอ

Page 11: การติดตั้งโปรแกรม PDN 2013

จะเขาสหนาจอของระบบดงรป

ในการเขาใชงานครงแรกจะตองท าดงน ระหวางการใชงานในครงแรกน ทานอาจจะเปดหนาจอเพอ tail log ของ pdn2013 ไวอกหนาตางหนง เพอด

ผลทเกดขนในระหวางการท างาน เปลยนรหสผานของ user province

o ใชเมน ตงคา => เปลยนรหสผาน นบจ านวนขอมลใน HDC

o ใชเมน ประมวลผลขอมล => นบจ านวนขอมล Provis ใหม o ท าการงานนอาจจะใชเวลาซกพกหนง ขนอยกบปรมาณขอมลในฐาน

เมอกลบมาทหนาจอหลก จะพบจ านวนขอมลทมากขนดงรป

Page 12: การติดตั้งโปรแกรม PDN 2013

และจะเหนจ านวนขอมลในแตละตารางดงรป

ทดสอบท าการ sync กบฐานขอมล HDC ในครงแรก

o ใชเมน จดการ sync ขอมลกบ Provis o กดปม ท าการ sync ขอมลทนท o บนหนาจอจะแสดงผลระหวางการท างาน และ refresh โดยอตโนมต


Top Related