기존 Apache가 설치된 환경에서 버전 업그레이드
Apache 2.4.63 신규 버전을 소스 컴파일로 설치하고 심볼릭 링크 기반 전환으로 서비스 다운타임 최소화
| |
기존 apache 경로: /etc/httpd
신규 apache 경로: /usr/local/apache
0. 고려사항
기존 Apache 패키지 경로:
/etc/httpd- 새 버전은
/usr/local/apache아래에 설치해 충돌 방지
- 새 버전은
심볼릭 링크 기반 버전 관리
/usr/sbin/httpd→/usr/local/apache/bin/httpd로 링크하여 서비스 파일 수정 최소화conf, modules, workers.properties 등 핵심 설정만 이관
logs 경로는 기존 경로를 그대로 사용
/usr/local/apache/logs→/etc/httpd/logs로 링크업그레이드 중 필수 검증:
httpd -t설정 문법 체크httpd -S가상호스트 및 include 파일 존재 여부 확인- 없는 파일은
cp -arup로 보완
1. 신규 버전 다운로드 및 배포 준비
/usr/local에 신규 파일 배치
1 2 3 4cd /usr/local tar -zxvf apache.2.4.63.tar.gz mv apache apache-2.4.63 ln -sfn /usr/local/apache-2.4.63 /usr/local/apache
2. 기존 설정 및 모듈 이관
conf/conf.d/conf.modules.d파일 복사- 신규 버전에 기본 제공되지 않는 파일(proxy-html.conf 등)은
httpd -S에서 오류가 나는지 확인하고 불필요하면 삭제
1 2 3 4 5 6 7 8# httpd.conf cp -arup /etc/httpd/conf/httpd.conf /usr/local/apache/conf/ # conf.d → extra/ 로 이관 cp -arup /etc/httpd/conf.d/* /usr/local/apache/conf/extra/ # conf.modules.d cp -arup /etc/httpd/conf.modules.d/ /usr/local/apache/conf.modules.d- 신규 버전에 기본 제공되지 않는 파일(proxy-html.conf 등)은
모듈 복사
1 2 3 4 5 6 7cp -arup /etc/httpd/modules/mod_jk.so /usr/local/apache/modules/ cp -arup /etc/httpd/modules/mod_ssl.so /usr/local/apache/modules/ cp -arup /etc/httpd/modules/mod_rpaf.so /usr/local/apache/modules/ cp -arup /etc/httpd/modules/mod_proxy_http2.so /usr/local/apache/modules/ cp -arup /etc/httpd/modules/mod_brotli.so /usr/local/apache/modules/ cp -arup /etc/httpd/modules/mod_suexec.so /usr/local/apache/modules/ cp -arup /etc/httpd/modules/mod_systemd.so /usr/local/apache/modules/workers.properties
1cp -arup /etc/httpd/conf/workers.properties /usr/local/apache/conf/
3. 로그 경로 유지
기존 경로 재사용
1 2rm -rf /usr/local/apache/logs ln -s /etc/httpd/logs /usr/local/apache/logs
4. httpd.conf 설정 변경
ServerRoot경로 수정 및 모듈 적용1 2 3 4 5 6 7 8 9 10 11vim /usr/local/apache/conf/httpd.conf ServerRoot "/usr/local/apache" ServerSignature Off ServerTokens Prod LoadModule jk_module modules/mod_jk.so LoadModule rpaf_module modules/mod_rpaf.so Include conf.modules.d/*.conf
5. 설정 검증
Missing file 오류가 나오면 해당 파일을
/etc/httpd/기준으로 찾아 복사syntax 오류가 나면 conf 파일 수정 후 재검증
1 2/usr/local/apache/bin/httpd -t # 설정 문법 검증 /usr/local/apache/bin/httpd -S # 가상호스트 및 include 파일 확인
6. systemd 서비스 연결
기존 서비스 파일(
/usr/lib/systemd/system/httpd.service)은 수정하지 않고, 바이너리만 신규 httpd 로 연결1 2 3 4 5 6 7service httpd stop cd /usr/sbin mv httpd httpd.bak ln -s /usr/local/apache/bin/httpd httpd service httpd start
7. 확인 필요 사항
httpd -t정상httpd -S에 missing 파일 없음- mod_jk, mod_ssl, mod_rpaf 등 필수 모듈 로딩 정상
- 서비스 기동 후
/etc/httpd/logs/error_log- 애플리케이션 로그
- SSL 인증서 로드 정상 여부
- 가상호스트 매핑 정상 작동 여부
- 원복 필요 시
/usr/sbin/httpd.bak로 즉시 롤백