IBM WebSphere Liberty Core를 GUI 없이 Command Line(CLI) 환경에서 설치하고, 서버 생성 및 기동, 핵심 설정(server.xml, JVM), 그리고 웹 서버 연동을 위한 플러그인 생성(pluginUtility) 과정을 단계별로 정리합니다.
1. 제품 설치 (CLI Mode)
Liberty는 Installation Manager(IM)의 imcl 명령어를 통해 설치합니다. GUI를 사용할 수 없는 리눅스/유닉스 서버 환경에서 필수적인 방법입니다.
설치 명령어 (imcl)
-repositories 옵션에는 설치 파일(Repository)의 경로를 지정합니다. 콤마(,)로 구분하여 WAS와 JDK 리포지토리를 동시에 지정할 수 있습니다.
# 설치 예시 (Windows 기준, Linux는 경로만 변경)
imcl install com.ibm.websphere.liberty.v85_8.5.16002.20160526_2338 \
com.ibm.websphere.liberty.IBMJAVA.v80_8.0.3020.20161124_1304 \
-repositories "D:\Liberty\16.0.0.2-WS-LIBERTY-CORE,D:\work_file\was_install\v8.5.5\SDK\8.0.3.20" \
-installationDirectory "F:\app\IBM\wlpcore\AppServer" \
-acceptLicense \
-showProgress -sP
imcl listAvailablePackages -repositories [경로] 명령어로 미리 확인해야 합니다.
2. 서버 생명주기 관리 (Server Lifecycle)
설치가 완료되면 bin 디렉토리의 server 스크립트를 사용하여 서버 인스턴스를 생성하고 제어합니다.
1) 서버 생성 (Create)
cd [WLP_HOME]/bin
# 구문: server create [서버명]
server.bat create test01
생성이 완료되면 [WLP_HOME]/usr/servers/test01 경로에 설정 파일들이 만들어집니다.
2) 서버 기동 및 상태 확인 (Start/Status)
# 서버 기동
server.bat start test01
# 상태 확인 (필수 검증 단계)
server.bat status test01
3. 핵심 설정 (server.xml)
Liberty의 모든 구성은 server.xml 파일 하나에 통합되어 있습니다. 필요한 기능(Feature)만 선언해서 사용하는 구조입니다.
설정 파일 위치
[WLP_HOME]/usr/servers/[서버명]/server.xml
주요 설정 예시
<?xml version="1.0" encoding="UTF-8"?>
<server description="Test Server">
<!-- 1. Feature Manager: 필요한 기능 모듈 로드 -->
<featureManager>
<feature>jsp-2.2</feature>
<feature>jdbc-4.0</feature>
<feature>localConnector-1.0</feature> <!-- 로컬 관리용 -->
<feature>adminCenter-1.0</feature> <!-- 웹 관리 콘솔 -->
</featureManager>
<!-- 2. HTTP Endpoint: 포트 설정 -->
<!-- host="*"는 모든 IP 대역에서의 접속을 허용함 -->
<httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="9080" httpsPort="9443">
<tcpOptions soReuseAddr="true" />
</httpEndpoint>
<!-- 3. Web Server Plugin 설정 -->
<pluginConfiguration webserverPort="80" webserverSecurePort="443"/>
<!-- 4. Application 배포 설정 (자동 인식이 편함) -->
<applicationManager autoExpand="true"/>
<!-- 5. DB Connection (Oracle 예시) -->
<dataSource id="WorklightDS" jndiName="jdbc/WorklightDS">
<jdbcDriver libraryRef="OracleLib"/>
<properties.oracle
driverType="thin"
databaseName="ORCL"
serverName="localhost"
portNumber="1521"
user="SCOTT"
password="{xor}KDAtNDM2ODcr"/> <!-- securityUtility로 암호화 권장 -->
</dataSource>
<!-- 6. Logging 설정 -->
<logging maxFiles="5" consoleLogLevel="INFO"/>
</server>
설정 파일의
password="{xor}..." 부분은 평문을 그대로 넣지 않고, Liberty가 제공하는 bin/securityUtility encode [암호] 명령어를 사용하여 인코딩된 값을 넣어야 보안상 안전합니다.
4. 환경 변수 및 JVM 옵션 설정
메모리(Heap) 설정이나 로그 경로 변경 등은 별도의 설정 파일에서 관리합니다.
1) JVM 옵션 (jvm.options)
Heap Size나 GC 로그 설정은 jvm.options 파일에 라인 단위로 작성합니다.
- 위치:
[WLP_HOME]/usr/servers/[서버명]/jvm.options
# Heap Memory 설정
-Xms512m
-Xmx1024m
# GC 로그 설정
-verbose:gc
-Xverbosegclog:verbosegc.log
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintHeapAtGC
2) 환경 변수 (server.env)
JAVA_HOME 지정이나 커스텀 로그 경로는 server.env에 정의합니다.
# Java 버전 지정
JAVA_HOME=C:\Java\jdk1.8.0
# 로그 경로 변경 (Optional)
WLP_OUTPUT_DIR=F:\app\IBM\wlpcore\AppServer\usr\logs\test02
5. 웹 서버 플러그인 (Plugin) 생성
Liberty 서버 앞단에 IHS(Apache)를 둔다면, plugin-cfg.xml을 생성하여 웹 서버에 알려주어야 합니다.
플러그인 생성 도구 (pluginUtility)
Liberty 16.0.0.4 버전부터 pluginUtility 명령어를 사용합니다.
cd [WLP_HOME]/bin
# 1. 로컬 서버용 플러그인 생성
pluginUtility generate --server=test01 --targetpath=./plugin-cfg.xml
# 2. 원격 서버용 플러그인 생성 (Admin Center 기능 필요)
pluginUtility generate --server=admin:password@remoteHost:9443 --targetpath=./plugin-cfg.xml
# 3. 여러 플러그인 병합 (Merge)
pluginUtility merge --sourcepath=../usr/plugin --targetpath=../usr/merged_plugin.xml
웹 서버(httpd.conf) 적용
생성된 xml 파일을 웹 서버로 복사한 후 httpd.conf에 등록합니다.
# Windows 예시
LoadModule was_ap22_module "C:\IBM\HTTPServer\plugins\bin\mod_was_ap22_http.dll"
WebSpherePluginConfig "C:\IBM\HTTPServer\plugins\config\webserver1\plugin-cfg.xml"
# Linux/Unix 예시
LoadModule was_ap22_module "/opt/IBM/HTTPServer/plugins/bin/mod_was_ap22_http.so"
WebSpherePluginConfig "/opt/IBM/HTTPServer/plugins/config/webserver1/plugin-cfg.xml"
Next Step:
기본 설치와 설정이 끝났다면, adminCenter 기능을 활성화하고 브라우저(https://localhost:9443/adminCenter)로 접속하여 GUI 환경에서 서버 상태를 모니터링해 보십시오.