3. ⚙️ Хөгжүүлэлтийн орчин тохируулга
3.1 Системийн шаардлага
HONGIKINGAN CMS-ийн хөгжүүлэлтийн орчин нь eGovFrame-ийн хөгжүүлэлтийн орчныг шууд ашигладаг бөгөөд програм хөгжүүлэлт болон ажиллуулахад шаардлагатай бүрдүүлэх хэрэгслийн орчны мэдээлэл дараах байдалтай байна.
3.1.1 Үндсэн шаардлага
OS
- Windows 10, 7 болон түүнээс дээш (Macx86_64/Arch64)
- Linux 64bit
IDE
- Eclipse 4.26 (2022-12)
JDK
- Хөгжүүлэлтийн орчин: JDK 17 болон түүнээс дээш шаардлагатай
- Ажиллуулах үйл ажиллагааны орчин: JDK 1.8
WAS
- Apache Tomcat 9
DBMS
- Oracle, MySQL(MariaDB), CUBRID, MS-SQL, Tibero, PostgreSQL-ээс сонгох
Лавлах зүйл
Хөгжүүлэлтийн нөхцөл байдлаас хамаарч хөгжүүлэлтийн орчныг өөрчлөх боломжтой боловч энэхүү удирдамжид багтаагүй болно.
3.1.2 Техник хэрэгслийн шаардлага
CPU
Хос цөмтэй болон түүнээс дээш зөвлөмжтэй
Санах ой
8GB болон түүнээс дээш зөвлөмжтэй
Диск
10GB болон түүнээс дээш чөлөөт зай зөвлөмжтэй
3.2 Хөгжүүлэлтийн орчин бүрдүүлэх (Windows үндсэн)
3.2.1 Case1 - Шууд бүрдүүлэх
- eGovFrame хөгжүүлэлтийн орчин
- eGovFrameDev-4.2.0-64bit татаж авах
- JDK суулгах
- Windows: JDK 17 болон түүнээс дээш суулгах
- MacOS, Linux: JDK 17 болон түүнээс дээш суулгах
- WAS суулгах
- Apache Tomcat 9.x татаж авах
- DBMS суулгах
- Oracle / MySQL(MariaDB) / CUBRID / MS-SQL / Tibero
- Төсөлд ашиглагдах DataBase-г урьдчилан өгөгдсөн CMS DB Scheme + data ашиглан суулгана.
- DB серверийн бүтээн байгуулалтын тайлбарыг энэхүү гарын авлагад өгөхгүй.
- HONGIKINGAN CMS эх код + DB Scheme + DB өгөгдөл
3.2.2 Case2 - CMS багцаар бүрдүүлэх (энэхүү гарын авлагад явуулах)
1. HONGIKINGAN CMS хөгжүүлэгчийн багц (H-CMS-2.2.zip) бэлтгэх
H-CMS-2.2.zip файлын бүрдэл:
- eclipse: eGovFrame хөгжүүлэлтийн орчин, eGovFrameDev-4.2.0-64bit
- maven: Repository + settings.xml
- util: Tomcat9 + OpenJDK-1.8, JDK17 (хөгжүүлэлтийн орчин ажиллуулах зориулалт)
- workspace: HONGIKINGAN CMS эх код
- DB: Scheme + өгөгдөл
- DOC: Удирдамжийн баримт бичиг, хүснэгтийн тодорхойлолт, операторын гарын авлага
2. DBMS суулгах
- Oracle / MySQL(MariaDB) / CUBRID / MS-SQL / Tibero / PostgreSQL
- Төсөлд ашиглагдах DataBase-г урьдчилан өгөгдсөн CMS DB Scheme + data ашиглан суулгана.
- DB серверийн бүтээн байгуулалтын тайлбарыг энэхүү гарын авлагад өгөхгүй.
3. "D:" драйвын волюм байгаа хөгжүүлэгчийн PC бэлтгэх
Суулгах журам:
- HONGIKINGAN CMS багцын файлыг D: драйвт задлах
- Задлах үед CMS-ийн зам нь "D:\H-CMS-2.2" болно.
- (D:\H-CMS-2.2\H-CMS-2.2 гэх мэт бүтэц болохгүй байхад анхаарна уу)
- "D:\H-CMS-2.2\Humanframe.lnk (товчлол)" дүрс дээр дарж CMS-г ажиллуулах
- D драйв байхгүй тохиолдолд C драйвт задалсны дараа гол тохиргооны файлын замыг засах
3.3 Хөгжүүлэлтийн орчин бүрдүүлэх дэлгэрэнгүй журам
3.3.1 JDK суулгах (заавал биш - багцад багтсан)
1. JDK татаж авах
- JDK 17 болон түүнээс дээш татаж авч суулгах
2. Орчны хувьсагч тохируулах
- JAVA_HOME: JDK суулгасан зам (багцын үндсэн: D:\H-CMS-2.2\util\jdk-17.0.7)
- PATH: %JAVA_HOME%\bin нэмэх
3.3.2 Eclipse ажиллуулах
1. Eclipse ажиллуулах
- Багцад багтсан D:\H-CMS-2.2\Humanframe.lnk (товчлол) ажиллуулах
3. Maven тохиргоо
- Window > Preferences > Maven > User Settings
- Багцад багтсан D:\H-CMS-2.2\maven\settings.xml файлыг зааж өгөх
3.3.3 Өгөгдлийн сангийн тохиргоо
1. Өгөгдлийн сан суулгах
- CUBRID (үндсэн), Oracle, MySQL(MariaDB), MS-SQL, Tibero, PostgreSQL-ээс сонгож суулгах
2. Схем болон өгөгдөл импорт хийх
- Багцад багтсан DB фолдерын схемийн скрипт ажиллуулах
- Анхны өгөгдөл импорт хийх скрипт ажиллуулах
3. Өгөгдлийн сангийн холболтын тохиргоо
- context-datasource.xml файлд өгөгдлийн сангийн холболтын мэдээллийг засах
JNDI тохиргоо:
CMS дотор ашиглаж буй үндсэн JNDI нэр нь "cmsdb" юм. Холбогдох тохиргоог context-datasource.xml-ээс шалгаж, өөрчлөх боломжтой.
<Resource name="jdbc/cmsdb"
auth="Container"
type="javax.sql.DataSource"
maxTotal="20"
maxIdle="10"
maxWaitMillis="-1"
validationQuery="select 1"
testOnBorrow="false"
poolPreparedStatements="true"
username="cmsuser"
password="cmspassword"
driverClassName="cubrid.jdbc.driver.CUBRIDDriver"
url="jdbc:cubrid:localhost:33000:cmsdb:::?charset=utf-8&zeroDateTimeBehavior=round"/>
<Resource name="jdbc/cmsdb"
auth="Container"
type="javax.sql.DataSource"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="cmsuser"
password="cmspassword"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cmsdb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8"/>
<Resource name="jdbc/cmsdb"
auth="Container"
type="javax.sql.DataSource"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="cmsuser"
password="cmspassword"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:XE"/>
3.3.4 WAS тохиргоо
1. Tomcat тохиргоо
- Багцад багтсан Tomcat9 ашиглах эсвэл тусад нь суулгах
- Eclipse-д сервер нэмэх: Window > Show View > Servers
- Шинэ сервер нэмэх: Apache > Tomcat v9.0 Server
2. Төслийн байршуулалтын тохиргоо
- Серверт төсөл нэмэх
- Санах ойн тохиргоо (хамгийн бага): -Xms512m -Xmx1024m
3.4 Гол тохиргооны файлын удирдамж
3.4.1 context-properties.xml
Аппликейшны гол шинж чанарын утгыг тодорхойлох файл юм.
Гол тохиргооны зүйлүүд:
- GLOBAL_SITE_DOMAIN: Үндсэн сайтын домэйн
- WEB_DIR: Вэб аппликейшны лавлах
- THEME_PATH: Сайтын загварын лавлах
- FILE_UPLOAD_DIR: Файл байршуулах лавлах
Сонголтын тохиргооны зүйлүүд (худалдан авах эсвэл ашиглах үед):
- EDITOR: Вэб эдиторын тохиргоо
- GLOBAL_FILEPREVIEW_AT: Файл үзүүлэгч ашиглах эсэх (худалдан авах сонголт)
- DAUM_API_KEY: Какао API түлхүүр - JavaScript хувилбар (олгох: URL)
- GOOGLE_API_KEY: Google API түлхүүр - JavaScript хувилбар (олгох: URL)
- RECAPTCHA_SITE_KEY: Google reCAPTCHA сайтын түлхүүр (олгох URL -- https://cloud.google.com/security/products/recaptcha )
- RECAPTCHA_SECRET_KEY: Google reCAPTCHA нууц түлхүүр (олгох URL -- https://cloud.google.com/security/products/recaptcha )
<!-- [бодит код] humanframe/spring/context-properties.xml -->
<beans profile="local">
<bean name="propertiesService" class="org.egovframe.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
<property name="properties">
<map>
<!-- global set -->
<entry key="GLOBAL_SITE_DOMAIN" value="https://developers.yooncoms.com" />
<entry key="WEB_DIR" value="D:/H-CMS-2.2/workspace/humanframe/humanframe.web/src/main/webapp" />
<entry key="FILE_UPLOAD_DIR" value="/data" />
<entry key="THEME_PATH" value="D:/H-CMS-2.2/workspace/humanframe/humanframe.web/src/main/webapp/WEB-INF/jsp/theme" />
<entry key="SESSION_ADMIN" value="HUMAN_ADMIN" />
<entry key="SESSION_MEMBER" value="HUMAN_MEMBER" />
<entry key="EDITOR" value="SMART" /> <!-- SMART, EDITORPLUS -->
<entry key="GLOBAL_FILEPREVIEW_AT" value="Y" />
<entry key="DAUM_API_KEY" value="Какао API түлхүүр - JavaScript хувилбар" />
<entry key="GOOGLE_API_KEY" value="Google API түлхүүр - JavaScript хувилбар"/>
<entry key="RECAPTCHA_SITE_KEY" value="Google сайтын түлхүүр" />
<entry key="RECAPTCHA_SECRET_KEY" value="Google нууц түлхүүр" />
</map>
</property>
</bean>
</beans>
3.4.2 context-datasource.xml
Өгөгдлийн сангийн холболтын тохиргоог агуулсан файл юм.
<!-- [бодит код] humanframe/spring/context-datasource.xml -->
<beans profile="local">
<bean id="cmsDataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
<constructor-arg ref="cmsDataSourceSpied" />
<property name="logFormatter">
<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
<property name="loggingType" value="MULTI_LINE" />
<property name="sqlPrefix" value="### SQL : " />
</bean>
</property>
</bean>
<jee:jndi-lookup id="cmsDataSourceSpied" jndi-name="java:comp/env/jdbc/cmsdb" expected-type="javax.sql.DataSource" resource-ref="true" />
<jdbc:initialize-database data-source="cmsDataSource" enabled="false">
<jdbc:script location="classpath:database/schema.sql" encoding="utf-8" />
</jdbc:initialize-database>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="cmsDataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
3.4.3 Бусад гол тохиргооны файлууд
- context-mapper.xml: MyBatis тохиргоо
- human-resource.xml: Нөөцтэй холбоотой тохиргоо
- context-mail.xml: Мэйл илгээлттэй холбоотой тохиргоо
- web.xml: Вэб аппликейшны үндсэн тохиргоо
<!-- [бодит код] humanframe/spring/human-resource.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd" >
<!-- humanframe системтэй холбоотой тохиргооны файл -->
<properties>
<entry key="humanframe.dbType">cubrid</entry><!-- DB Type : altibase, cubrid, mysql, oracle, tibero -->
<entry key="humanframe.admin.path">humanmst</entry>
</properties>
3.5 Профайлын тохиргоо (хөгжүүлэлт/тест/үйл ажиллагаа)
HONGIKINGAN CMS нь Spring профайлыг ашиглан хөгжүүлэлт, тест, үйл ажиллагааны орчинд тохирсон өөр өөр тохиргоог хэрэглэх боломжтой.
Гол профайлууд:
- local: Локал хөгжүүлэлтийн орчин
- dev: Тестийн серверийн орчин
- prd: Үйл ажиллагааны серверийн орчин
Spring профайл local тохиргоо хэрэглэх
- Eclipse серверийн зүйлүүдээс WEB серверийг давхар товшино.
- Open launch configuration зүйлийг товшино.
- Arguments таб товшино.
- VM arguments цонхонд
-Dspring.profiles.active=localсонголтыг шалгана. Байхгүй бол нэмнэ. - D драйв байхгүй тохиолдолд C драйвт зам тохируулсны дараа "Гол тохиргоо шалгах" зүйлийг лавлан замыг шууд засна.
3.6 Вэб эдиторын тохиргоо
HONGIKINGAN CMS нь вэб эдитороор SMART, EDITORPLUS-г дэмждэг бөгөөд үндсэндээ SMART ашигладаг. Дараах байдлаар тохируулж болно.
<!-- [бодит код] humanframe/spring/context-properties.xml -->
<entry key="EDITOR">SMART</entry> <!-- SMART , EDITORPLUS -->
<!--editor path -->
<entry key="UPLOAD_WEBEDITOR_DIR">C:/dev/workspace/humanframe/humanframe/humanframe.web/src/main/webapp/humanframe/global/kukudocs</entry>
<entry key="UPLOAD_WEBEDITOR_PATH">/humanframe/global/kukudocs</entry>
webeditorplus ашиглах тохиолдолд ImagePath.jsp файлын замын тохиргоог шалгах шаардлагатай.
imagePhysicalPath хувьсагч нь бодит локал фолдерын замтай тохирч байгаа эсэхийг шалгаж, шаардлагатай бол засна. Ялангуяа байршуулагдах бодит серверийн үнэмлэхүй замыг шалгасны дараа тохиргоо хийх шаардлагатай.
<!-- [бодит код] humanframe.web/src/main/webapp/webeditorplus/websource/jsp/ImagePath.jsp -->
<%
String imagePhysicalPath = "";
String activeProfiles = System.getProperty("spring.profiles.active");
if("local".equalsIgnoreCase(activeProfiles) || "dev".equalsIgnoreCase(activeProfiles)) {
imagePhysicalPath = "D:/H-CMS-2.2/workspace/humanframe";
} else {
imagePhysicalPath = "/home/tomcat/webapps/humanframe";
}
%>
3.7 Хөгжүүлэлтийн орчин тохируулах үед анхаарах зүйлүүд
- JDK хувилбарын нийцтэй байдал
- Хөгжүүлэх үед JDK 11 болон түүнээс дээш (Windows) эсвэл JDK 17 болон түүнээс дээш (MacOS, Linux) ашиглах
- Ажиллуулах орчин нь JDK 1.8 үндсэн хөгжүүлэлт
- Өгөгдлийн сангийн тохиргоо
- human-resource.xml файлын humanframe.dbType шинж чанарыг шалгах
- Ашиглаж буй өгөгдлийн санд тохируулан тохируулах (cubrid, oracle, mysql, mssql, tibero, postgresql)
- Тэмдэгт кодлол
- Төслийн кодлол: UTF-8
- JSP файлын кодлол: UTF-8
- Өгөгдлийн сантай холбогдох үед кодлол: UTF-8
- Санах ойн тохиргоо
- Хөгжүүлэлтийн орчноос хамааран JVM санах ойн тохиргоог тохируулах
- Үндсэн зөвлөмж: -Xms512m -Xmx1024m
3.8 Төслийг ажиллуулах болон анхны холболт
3.8.1 Төслийг ажиллуулах
1. Төслийг бүтээх
- Maven > Update Project
- Project > Clean
2. Сервер эхлүүлэх
- Сервер дээр баруун товчоор дарж > Start
3. Холболт шалгах
- Хөтчөөр http://localhost:8080/ холбогдох
- Удирдлага: http://localhost:8080/humanmst/
3.8.2 Удирдлагын нэвтрэх
Удирдлагын анхны дансны мэдээлэл
ID: cmsadmin / Нууц үг: 1111
- ID болон нууц үгийг оруулсны дараа нэвтрэх товчийг дарж хуудасны хяналтын самбар гарч ирнэ.
- Удирдлагын хуудасны функцийн тайлбарыг удирдлагын гарын авлагаас лавлана уу.