본문 바로가기

WEB/Apache,OHS

[OHS] OHS 12cR2 (12.2.1.*) 설치 - UNIX/LINUX 환경

업데이트 날짜 : 2023-11-21


 

#. 참고 블로그 글

(설치)

https://m.blog.naver.com/spacemarket/221905694917

(component 추가/삭제)

https://bluerainxx.tistory.com/28

 


 

#. 윈도우 환경 설치

윈도우 환경 설치 가이드는 아래 글 참고

https://hyuunchul.tistory.com/176

 

[OHS] OHS 12cR2 (12.2.1.*) 설치 - Windows 환경

#01. 설치 전 사전 준비 사항 Visual C++ 이 설치되어 있어야 한다 Visual Studio 2010, Visual Studio 2012 모두 설치하도록 하자 설치 대상 윈도우 장비에 백신 소프트웨어가 동작 중이라면 설치 진행하기 전

hyuunchul.tistory.com

 


 

#. 설치 전 사전 준비사항

설치에 앞서 OS에 각종 패키지 설치가 필요하다.

OS 별로 필요 패키지가 다르므로 아래 글 참고하여 확인

"UNIX Operating System Requirements" 항목 참고

(12.2.1.3)

https://docs.oracle.com/en/middleware/fusion-middleware/12.2.1.3/sysrs/system-requirements-and-specifications.html#GUID-880D655D-F9FB-439B-8001-10AA78D0FC57

(12.2.1.4)

https://docs.oracle.com/en/middleware/fusion-middleware/12.2.1.4/sysrs/system-requirements-and-specifications.html#GUID-37C51062-3732-4A4B-8E0E-003D9DFC8C26

 


 

#. RHEL8 / CentOS8 에 설치 시 주의사항

아래 두 패키지는 RHEL8 에서 제거되어 더 이상 설치가 불가하다.

Checking for compat-libcap1-1.10; Not found.    Failed
Checking for compat-libstdc++-33-3.2.3-x86_64; Not found.       Failed

 

RHEL7 및CentOS7에는 여전히 존재하기 때문에 우회하여 설치 가능하다.

yum install -y http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
yum install -y http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libcap1-1.10-7.el7.x86_64.rpm

 


 

#. AIX 장비에 설치 시 주의사항

IOCP enabled 적용이 반드시 필요함.

해당 옵션을 적용하지 않으면 서버 기동 시 에러가 발생한다.

옵션 적용을 위해 시스템 재부팅이 필요하므로, 사전에 시스템 담당자에게 해당 내용 전달해야 함.

 

해당 내용은 12.2.1.3 및 이후 버전에 해당되는 사항

(oracle support 문서 ID - 2351465.1)

 


 

#. 서버 설치

해당 글에서는 silent 방식 설치로 작성하였음.

설치에 필요한 파일은 아래와 같음.

 - fmw_12.2.1.*.0_ohs_linux64.bin (설치 파일)

 - install.rsp (설치 옵션 및 경로 지정)

 - oraInst.loc (인벤토리 경로 지정)

 

install.rsp

ORACLE_HOME 옵션에 OHS 서버가 설치될 디렉토리 경로를 지정한다.

ORACLE_HOME 옵션 외에는 수정하지 않는다.

[ENGINE]
Response File Version=1.0.0.0.0

[GENERIC]
ORACLE_HOME=/app/ohs/ohs_12214
INSTALL_TYPE=Standalone HTTP Server (Managed independently of WebLogic server)
DECLINE_SECURITY_UPDATES=true
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

 

 

oraInst.loc

inventory_loc 에는 OHS 서버의 인벤토리가 설치될 디렉토리 경로를 지정한다.

inst_group 에는 OHS 서버를 기동할 user 가 속한 group 명을 작성한다.

inventory_loc=/app/ohs/inventory_12214
inst_group=

 

 

설치 실행 명령어

설치파일 권한 변경
chmod +x fmw_12.2.1.4.0_ohs_linux64.bin

설치 실행
./fmw_12.2.1.4.0_ohs_linux64.bin -silent -responseFile install.rsp -invPtrLoc oraInst.loc

 

 


 

#. 도메인 구성

도메인 구성도 silent로 진행한다.

domain.py 파일을 생성한다.

 

12.2.1.3 버전 설치 시

selectTemplate('Oracle HTTP Server (Standalone)', '12.2.1.3.0')
loadTemplates()

cd('SystemComponent/ohs1')
set('Name','comp1')

cd('/SecurityConfiguration/base_domain')
set('NodemanagerUsername','admin')
set('NodemanagerPasswordEncrypted','admin1234')

cd('/')
writeDomain('/app/ohs/ohs_12213/domains/ehc_domain/')
closeTemplate()
exit()

 

 

12.2.1.4 버전 설치 시

selectTemplate('Oracle HTTP Server (Standalone)', '12.2.1.3.0')

해당 부분 그대로 유지한다.

서버 라이브러리 내에 domain 템플릿에서 버전명 수정이 되어있지 않음.

selectTemplate('Oracle HTTP Server (Standalone)', '12.2.1.3.0')
loadTemplates()

cd('SystemComponent/ohs1')
set('Name','comp1')

cd('/SecurityConfiguration/base_domain')
set('NodemanagerUsername','admin')
set('NodemanagerPasswordEncrypted','admin1234')

cd('/')
writeDomain('/app/ohs/ohs_12213/domains/ehc_domain/')
closeTemplate()
exit()

 

 

도메인 구성 명령어

아래 디렉토리로 이동
{OHS_HOME}/oracle_common/common/bin

아래 명령어 실행
./wlst.sh /app/ohs/install_files/domain.py

 

 


 

 

#. OHS 서버 기동 및 정지 - Nodemanger

서버 인스턴스 기동/정지를 관리하는 Nodemanager를 우선 실행해야 한다.

{DOMAIN_HOME}/bin/startNodeManager.sh 로 실행.

 

실행 후 CTRL+C 로 빠져나오면 노드매니저가 함께 종료되기 때문에

실행 명령어 뒤에 & 를 붙여 백그라운드에서 동작하도록 해야 한다.

 

아래와 같이 별도 스크립트를 생성하여 기동 및 정지를 관리하면 편리하다.

startNode.sh (NodeManager 기동)
./bin/startNodeManager.sh &

stopNode.sh (NodeManager 정지)
./bin/stopNodeManager.sh

 

 

 


 

#. OHS 서버 기동 및 정지 - Component

component 기동 및 정지의 경우

{DOMAIN_HOME}/bin 디렉토리 하위의

startComponent.sh 및 stopComponent.sh 로 실행한다.

 

기동 시 password 입력 창이 출력되는데,

storeUserConfig 옵션을 포함하면 최초 입력 이후에는 password 입력이 필요하지 않음.

아래와 같이 서버 기동 명령어 스크립트를 작성한다

startComp.sh (서버 기동)
./bin/startComponent.sh {INSTANCE_NAME} storeUserConfig

 

서버 종료 명령어는 아래와 같다.

stopComp.sh (서버 정지)
./bin/stopComponent.sh {INSTANCE_NAME}

 

 


 

#. 서버 프로세스 확인 스크립트

wlst 를 사용하여 서버 프로세스가 정상적으로 기동 중인지 확인 가능하다.

아래의 두 개 스크립트 생성 후,

status.sh 을 실행하여 확인한다.

 

status.py

nmConnect('username','password','127.0.0.1','5556','domain명')
nmServerStatus('인스턴스명',serverType='OHS')
exit()

=================================================================

예시
nmConnect('admin','admin1234','127.0.0.1','5556','ehc_domain')
nmServerStatus('comp1',serverType='OHS')
exit()

 

 

status.sh

/app/ohs/ohs_12214/oracle_common/common/bin/wlst.sh status.py

 

 

 


 

#. 도메인 내에 컴포넌트 추가

add_comp.py 스크립트를 생성한다.

readDomain('ohs/ohs12.2.1.4/domains/ehc_domain')

cd('/')
create('comp2', 'SystemComponent')
cd('/SystemComponent/comp2')
cmo.setComponentType('OHS')

# configure OHS instance that was created
cd('/OHS/comp2')
cmo.setAdminHost('127.0.0.1')
cmo.setAdminPort('29999')
cmo.setListenPort('27777')
cmo.setSSLListenPort('24443')

# update the domain
updateDomain()
closeDomain()

 

 

컴포넌트 추가 명령어

아래 디렉토리로 이동
{OHS_HOME}/oracle_common/common/bin

아래 명령어 실행
./wlst.sh /app/ohs/install_files/add_comp.py

 

 

(2023/04/13 작성)

[midadm@keuangkuo install_files]$ cat add_comp.py 
readDomain('/app/ohs/ohs_12214/domains/test_domain')

cd('/')
create('comp2', 'SystemComponent')
cd('/SystemComponent/comp2')
cmo.setComponentType('OHS')

# configure OHS instance that was created
cd('/OHS/comp2')

# update the domain
updateDomain()
closeDomain()

---------------------------------------------------------

[midadm@keuangkuo install_files]$ cat delete_comp.py 
readDomain('/app/ohs/ohs_12214/domains/test_domain')
cd('/')

# OHS Component name(ex. web2)
delete('comp2', 'SystemComponent')
updateDomain()
closeDomain()

---------------------------------------------------------

아래 작업들을 추가로 해 주어야 완전히 삭제된다.

1. {DOMAIN_HOME}/config/config.xml 에서 컴포넌트 정보 삭제 확인
2. {DOMAIN_HOME}/system_components/OHS/{컴포넌트명} 디렉토리 삭제
3. {DOMAIN_HOME}/servers/{컴포넌트명} 디렉토리 삭제
4. {DOMAIN_HOME}/config/fmwconfig/components/OHS/{컴포넌트명} 디렉토리 삭제

 

 


 

#. OHS Config 설정 시 주의사항

OHS12c의 경우 httpd.conf를 통해 configuration을 관리한다

httpd.conf는 총 두 곳에 존재한다.

 

1. Staging Directory

{DOMAIN_HOME}/config/fmwconfig/components/OHS/{인스턴스명}

2. Runtime Directory

{DOMAIN_HOME}/config/fmwconfig/components/OHS/instances/{인스턴스명}

 

config 변경 시에는

반드시 Staging Directory 에서 작업해야 한다.

 

서버 기동 시

Staging Directory 내의 파일이 Runtime Directory 측으로 copy 되기 때문이다.

 


 

#. ErrorLog 및 AccessLog rotation 설정

 

Error Log 설정

로그 파일 로테이션 설정은 아래 이미지 참고

LogLevel은 info로 수정

(설정예시)

ErrorLog "||${PRODUCT_HOME}/bin/rotatelogs /app/logs/ohs/error_log/error.log_%Y%m%d 86400 +540"

 

Access Log 설정

마찬가지로 로그 파일 로테이션 설정은 아래 이미지 참고

common 이 아닌 combined 설정이 권장된다

(설정예시)

CustomLog "||${PRODUCT_HOME}/bin/rotatelogs /app/logs/ohs/access_log/access.log_%Y%m%d 86400 +540" combined

 


 

#. 보안취약점 조치

아래 글 참고

https://hyuunchul.tistory.com/289