본문 바로가기

WEB/Apache,OHS

[JBCS Apache] JBCS Apache 설치 가이드 (2.4.* 버전)

#. 참고 블로그 글

(JBCS(jBoss Core Services)-Apache HTTP Server란 무엇인가)

https://chanchan-father.tistory.com/199

 

(JBCS Apache 구성 가이드)

https://chanchan-father.tistory.com/242

 

(jbcs apache에서 파일 권한 변경 시 에러 발생 관련)

https://jmjeon.tistory.com/49

 

(sudo 명령어 패스워드 없이 사용)

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_sudo_%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C_%EC%97%86%EC%9D%B4_%EC%82%AC%EC%9A%A9

 


 

#. 설치 전 유의사항

sed 명령어를 숙지하도록 하자 (파일 내 특정 문자열 치환 명령어)

해당 명령어 사용해야 할 일이 많다.

 sed -i  's/변경 전 내용/변경할 내용/g' 파일명

 

 


 

#. 설치 파일 다운로드

레드햇 홈페이지 내에서 다운로드.

 https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?product=core.service.apachehttp&downloadType=distributions

 

Red Hat JBoss Core Services Apache HTTP Server 파일을 다운로드 받는다.

 


 

#. jbcs apache 설치 (설치파일 압축 해제)

일반 apache 설치와 달리,

jbcs apache는 zip 파일 압축 해제만으로 설치가 완료된다.

(그 대신 초기에 config 수정 필요 부분이 많음. 아래 내용 참고.)

 

unzip jbcs-httpd24-httpd-2.4.51-RHEL8-x86_64.zip

 

 

압축 해제된 디렉토리 하위의 httpd 디렉토리가

jbcs apache의 home 디렉토리이다.

 

httpd 디렉토리 하위 파일들

 


 

#. postinstall 실행

https://access.redhat.com/documentation/ko-kr/red_hat_jboss_core_services/2.4.23/html/apache_http_server_installation_guide/installing_jboss_core_services_apache_http_server_on_red_hat_enterprise_linux#configuring_the_apache_http_server_installation

 

서버 home directory 등을 설정해준다.

 

 

 

 


 

(아래 내용 삭제 예정 -> postinstall 스크립트를 통해 아래 작업들을 실행하는 방식으로 수정해야 함)

 

#. config 파일 수정

apachectl 파일은 APACHE_HOME/sbin 디렉토리 하위에 위치한다.

아무런 수정을 가하지 않은 상태에서 apachectl start 명령어를 수행하면

home 디렉토리가 정상적으로 지정되지 않아 서버 기동에 실패한다.

각종 config 파일에 APACHE_HOME 경로를 지정해주는 수정작업이 필요하다.

 


 

01. conf 디렉토리

httpd.conf 파일 내용을 수정한다.

 

해당 파일 내부에 APACHE_HOME 디렉토리 경로 설정 내용이

@@@HTTPD_HOME@@@ 으로 되어있다.

해당 내용 전체를 실제 설치한 경로로 수정해야 한다.

 

아래 명령어를 실행하여 모든 @@@HTTPD_HOME@@@ 문자열을 실제 서버 설치한 경로로 수정한다.

경로명으로 수정하게 될 경우 # 문자열로 구분짓는다.

@@@HTTPD_HOME@@@ 을
/app/jboss_core_services/test/jbcs-httpd24-2.4/httpd 으로 수정

sed -i "s#@@@HTTPD_HOME@@@#/app/jboss_core_services/test/jbcs-httpd24-2.4/httpd#g" httpd.conf

 

 

그 외에 수정 필요한 부분은 아래와 같다

Listen 포트 설정
Listen 127.0.0.1:80

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

서버 실행 유저 및 그룹명 수정
User apache
Group apache

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

ServerName 수정
ServerName localhost:80

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

 

 


 

02. conf.d 디렉토리

*.conf 라는 이름으로 된 config 파일들만 서버 기동 시에 포함된다.

*.conf.sample 이름으로 된 config 파일은 기동 시 포함되지 않는다.

 

ssl.conf가 서버 기동 시에 포함되도록 되어있다.

SSL 인증서가 없는 상태이므로 서버 기동 시 에러가 발생한다.

따라서 ssl.conf 파일을 ssl.conf.sample 이름으로 변경하여 서버 기동 시에 포함하지 않도록 한다.

추후 필요 시에 openssl로 테스트용 인증서 생성 + ssl,conf 이름으로 다시 변경하여 httpd 테스트를 진행하면 된다.

 

해당 디렉토리에도 @@@HTTPD_HOME@@@ 문자열이 포함된 config 파일들이 있다.

sed 명령어로 수정해준다.

 

아래 명령어 실행

sed -i "s#@@@HTTPD_HOME@@@#/app/jboss_core_services/test/jbcs-httpd24-2.4/httpd#g" *.conf

 

 


 

03. conf.modules.d 디렉토리

00-base.conf 파일 내용을 수정해야 한다.

 

00-base.conf 파일의 맨 하단 부분에

DefaultRuntimeDir 경로를 수정한다

 


 

#. 80 port 사용 관련

root 계정이 아닌 일반 계정에서 80port를 사용하기 위해 수행해야 하는 과정이 일반 apache와 다르다.

 

일반 apache 에서는 아래 두 명령어를 수행하여

{APACHE_HOME}/bin/httpd 파일을 root 계정의 권한을 사용하여 실행하도록 수정하면 된다.

chown root httpd
chmod 6750 httpd

 

 

하지만, jbcs apache 에서는 서버 내부 파일의 권한을 변경하게 되면

서버 기동에 필요한 각종 패키지들의 링크가 깨지는 문제가 발생한다.

따라서 httpd 파일의 권한 변경 없이, sudo 명령어로 서버를 실행하는 방법을 사용해야 한다.

 


 

 

일반 계정에서 모든 명령어를 sudo로 실행 가능하도록 하면 보안 상 좋지 않다.

jbcs apache 기동 명령어만 sudo로 실행 가능하도록 설정하는 것이 좋다.

01. /etc/sudoers 에 apachectl을 sudo 권한으로 실행 가능하도록 등록

vi /etc/sudoers
midadm ALL=NOPASSWD: /app/jboss_core_services/jbcs-httpd24-2.4.51/httpd/sbin/apachectl

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

02. /etc/sudoers.d 디렉터리에 유저명.conf 파일을 생성하여 apachectl을 sudo 권한으로 실행 가능하도록 등록

vi /etc/sudoers.d/***.conf
midadm ALL=NOPASSWD: /app/jboss_core_services/jbcs-httpd24-2.4.51/httpd/sbin/apachectl

 

 


 

#. 서버 기동/정지 script 생성

sbin 디렉토리 하위에 아래 두 스크립트를 생성한다.

apachectl을 sudo로 실행 및 정지하도록 작성해야 한다.

(아래 내용 참고)

 

(기동 스크립트)

#server_properties
HTTPD_HOME=/app/jboss_core_services/test/jbcs-httpd24-2.4/httpd
HTTPD_CONF="-f $HTTPD_HOME/conf/httpd.conf"

#server_start
sudo ${HTTPD_HOME}/sbin/apachectl ${HTTPD_CONF} -k start

 

(정지 스크립트)

#server_properties
HTTPD_HOME=/app/jboss_core_services/test/jbcs-httpd24-2.4/httpd
HTTPD_CONF="-f $HTTPD_HOME/conf/httpd.conf"

#server_start
sudo ${HTTPD_HOME}/sbin/apachectl ${HTTPD_CONF} -k stop

 

 


 

#. 서버 기동

앞서 생성한 start.sh 스크립트를 실행하여 서버 기동한다.

아래 페이지 확인 가능하다면 서버 설치는 완료.