Apache 마이그레이션 (2.2,

1. 마이그레이션

1-1 액세스 제어가 선언되는 방식 변경

  • 2.2에서는 Order, Allow, Deny와 같은 지시어로 이루어진 접근 제어 설정을 Require로 변경해야 합니다.

1) 모든 요청 거부

# 2.2 설정

거부 명령, 허용

모두에게 거부됨

.

#2.4 태도

모두 거부된 요청

2) 모든 요청 수락

# 2.2 설정

주문 허용, 모든 허용 거부

.

#2.4 태도

모든 보조금 필요

3) example.org 허용 나머지 거부

# 2.2 설정

주문 거부, 허용

모두에게 거부됨

example.org에서 허용

.

#2.4 태도

모두 거부된 요청

호스트 example.org 필요

4) 127.0.0.1 허용 나머지 거부

# 2.2 설정

주문 거부, 허용

모두에게 거부됨

127.0.0.1부터 허용

.

#2.4 태도

모두 거부된 요청

IP 127.0.0.1 필요

1-2 속성/모듈 변경

.

속성/모듈 변경

.

httpd의 기존 구성에 아래 속성/모듈과 관련된 선언이 있으면 이름을 바꿉니다.

.

.

속성 이름

MaxClients -> MaxRequestWorkers

MaxRequestsPerChild -> MaxConnectionsPerChild

.

.

모듈 이름

mod_disk_cache -> mod_cache_disk

.

살아있어

속성은 On 또는 Off 값을 가질 수 있습니다. 와 같이 숫자로 선언한 경우가 있었다면 0, 1, 변경해야 합니다.

.

시작 서버 30

최소예비서버 30

MaxSpare서버 128

서버 제한 1024

최대 클라이언트 수 1024

#MaxClients -> MaxRequestWorkers

MaxRequestsPerChild 100000

#MaxRequestsPerChild ->

자녀당 최대 연결

.

KeepAlive Off # 이 속성은 On 또는 Off 값을 가질 수 있습니다.

.

속성의 기본값 변경 확인

다음 속성의 기본값이 변경되었습니다.

과거에 묵시적으로 기본값에 의존했다면 명시적으로 선언하십시오.

.

옵션에서 -,+ 모두 표시

모든 옵션은 + 또는 -로 시작하거나 어떤 옵션도 시작할 수 없습니다.

오류가 발생하면 모든 옵션에 +, -를 표시해야 합니다.

.

# 옵션 -인덱스 +IncludesNoExec +FollowSymLinks +MultiViews

옵션 – Indexes FollowSymLinks MultiViews

# 명시적으로 선언

AllowOverride 없음

명령 허용, 거부

모든 사람이 허용

# 명시적으로 선언

FileETag 없음

2. 오류 로그 및 해결 방법

..

실수 1

# Errorlog httpd: Syntax error on line 59 of /home1/irteam/apps/apache-2.4.39/conf/httpd.conf: Cannot load modules/mod_authz_default.so into server: /home1/irteam/apps/apache/ module / mod_authz_default.so: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

.

# 해결

mod_authz_default 삭제

.

실수 2

# Errorlog httpd: Syntax error on line 73 of /home1/irteam/apps/apache-2.4.39/conf/httpd.conf: Cannot load modules/mod_ident.so into server: /home1/irteam/apps/apache/ modules / mod_ident.so: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

.

# 해결

mod_ident 삭제

.

실수 3

# Errorlog AH00534: httpd: 구성 오류: MPM이 로드되지 않았습니다.

.

# 해결

LoadModule 추가 mpm_prefork_module 모듈/mod_mpm_prefork.so

.

실수 4

# Errorlog AH00526: /home1/irteam/apps/apache-2.4.39/conf/httpd.conf의 106번째 줄에 있는 구문 오류: 잘못된 명령 ‘user’, 철자가 틀리거나 서버 구성에 없는 모듈에 의해 정의되었을 수 있음

.

# 해결

LoadModule unixd_module 모듈/mod_unixd.so 추가

.

실수 5

# Errorlog AH00526: /home1/irteam/apps/apache-2.4.39/conf/httpd.conf의 214번째 줄에 있는 구문 오류: 잘못된 명령 ‘Order’, 철자가 틀리거나 서버 구성에 없는 모듈에 의해 정의되었을 수 있음

.

# 해결

LoadModule access_compat_module 모듈/mod_access_compat.so 추가

.

실수 6

# error log (Thu Aug 01 16:16:15.768125 2019) (core:warn) (pid 29604) AH00117: /home1/irteam/apps/apache-2.4.39/conf/ httpd의 281행에서 더 이상 사용되지 않는 DefaultType 사용 무시 .conf. AH00526: /home1/irteam/apps/apache-2.4.39/conf/httpd.conf의 325번째 줄에 있는 구문 오류: 잘못된 Require 명령, 철자가 틀리거나 서버 구성에 없는 모듈에 의해 정의되었을 수 있음

.

# 해결

LoadModule authz_core_module 모듈/mod_authz_core.so 추가

.

실수 7

# error log (Thu Aug 01 16:17:14.560832 2019) (core:warn) (pid 29690) AH00117: /home1/irteam/apps/apache-2.4.39/conf/ httpd의 282행에서 DefaultType의 더 이상 사용되지 않는 사용 무시 .conf. AH00526: /home1/irteam/apps/apache-2.4.39/conf/httpd.conf의 353행에 있는 구문 오류: 잘못된 명령 ‘LockFile’, 철자가 틀렸을 수 있음

.

# 솔루션 DefaultType text/plain -> ForceType text/plain (모든 응답은 text/plain으로 처리됩니다.) 제거 옵션

.

오류 8

# Errorlog AH00526: Syntax error at line 353 of /home1/irteam/apps/apache-2.4.39/conf/httpd.conf: 잘못된 명령 ‘LockFile’, 철자가 틀리거나 서버 구성에 없는 모듈에 의해 정의되었을 수 있음(월 8월 05 15:47:04.456821 2019) (core:warn) (pid 26228) AH00117: /home1/irteam/apps/apache-2.4.39/conf/httpd .conf의 280행에서 DefaultType의 더 이상 사용되지 않는 사용을 무시합니다. AH00526: /home1/irteam/apps/apache-2.4.39/conf/httpd.conf의 396번째 줄에 있는 구문 오류: 잘못된 허용 명령, 철자가 틀리거나 서버 구성에 없는 모듈에 의해 정의되었을 수 있음

.

# 솔루션 LockFile “logs/accept.lock” -> Mutex 파일: /home1/irteam/logs default

.

실수 9

# Errorlog AH00526: /home1/irteam/apps/apache-2.4.39/conf/httpd.conf의 521행에 구문 오류: JkWorkersFile: 지정된 작업자 파일을 찾을 수 없습니다.

.

# 해결 방법을 /home1/irteam/apps/apache/conf/workers.properties에 추가

.

실수 10

# Errorlog AH00526: /home1/irteam/apps/apache-2.4.39/conf/httpd.conf의 600행에 있는 구문 오류: 모든 옵션은 + 또는 -로 시작해야 합니다. 그렇지 않으면 어떤 옵션도 시작할 수 없습니다.

.

# 솔루션 옵션 -인덱스 FollowSymLinks MultiViews >> 옵션 -인덱스 +FollowSymLinks +MultiViews

.

실수 11

# Errorlog AH00548: NameVirtualHost는 효과가 없으며 다음 릴리스에서 제거됩니다. /home1/irteam/apps/apache-2.4.39/conf/httpd.conf:626 AH00112: 경고: DocumentRoot(/data/images/deploy/doc_base) 존재하지 않습니다. -컨텍스트가 허용되지 않음

.

# 해결 방법 NameVirtualHost 삭제

.

오류 12

# Errorlog (Thu 01 Aug 16:30:33.693824 2019) (proxy_balancer:emerg) (PID 31012) AH01177: ‘slotmem’에 대한 공급자 ‘shm’을 찾을 수 없습니다: mod_slotmem_shm이 로드되었습니까?? (2019년 8월 1일 목요일 16:30:33.693839) (:emerg) (PID 31012) AH00020: 구성 실패, 종료

.

# 솔루션 Slotmem_shm_module 모듈/mod_slotmem_shm.so에 LoadModule을 추가합니다.

.

오류 13

# error log (Thu Aug 01 16:32:06.814692 2019) (jk:warn) (pid 31220) httpd.conf에 정의된 JkShmFile이 없습니다. 기본 /home1/irteam/apps/apache/logs/jk-runtime-status 사용(Thu Aug 01 16:32:06.833689 2019) (jk:warn) (pid 31224) httpd.conf에 정의된 JkShmFile이 없습니다. 기본적으로 /home1/irteam/apps/apache/logs/jk-runtime-status 사용

.

# 해결 방법 JkShmFile /usr/local/apache2/logs/mod_jk.shm