apache http 2.2 -> 2.4 업그레이드

# apache http 2.2 -> 2.4 업그레이드
# 참고 https://httpd.apache.org/docs/2.4/upgrading.html
# api 변경 사항
# 참고 https://httpd.apache.org/docs/2.4/developer/new_api_2_4.html
# 2.4 부터 apr, apr-util 별도로 우선 설치해야 한다.(Apache Httpd 2.4 구성하기 포스트 참고)


#####


# 커스텀 아파치 모듈을 사용하는 경우
# undefined symbol: ap_rputs 등의 에러 발생
# 2.4 에서는 api 가 변경된것도 많아서 수정해서 다시 컴파일 수행(apr-1.5.2, apr-util-1.5.4 header, library 사용)

# 2.2
conn_rec->remote_ip
conn_rec->remote_addr

# 2.4
# useragent
request_rec->useragent_ip
request_rec->useragent_addr

# client
conn_rec->client_ip
conn_rec->client_addr

# apr 버전 체크
#include <apr_version.h>
#if (APR_MAJOR_VERSION >= 1 && APR_MINOR_VERSION >= 5)


#####


# httpd.conf 변경 사항
# 이름 변경
MaxClients -> MaxRequestWorkers
MaxRequestsPerChild -> MaxConnectionsPerChild

# 모든 접근 제한
# 2.2
Order deny,allow
Deny from all

# 2.4
Require all denied

# 모든 접근 허용
# 2.2
Order allow,deny
Allow from all

# 2.4
Require all granted

# 특정 호스트에 대해서만 접근 허용
# 2.2
Order deny,allow
Deny from all
Allow from example.org

# 2.4
Require host example.org

# 특정 ip 에 대해서만 접근 허용
# 2.2
Order deny,allow
Deny from all
Allow from 10.10.10.11 10.10.10.12

# 2.4
Require ip 10.10.10.11 10.10.10.12

# 제거된 지시자
# 2.2
# 0(최소)~9(최대) 출력
RewriteLogLevel 0

# 2.4
LogLevel info rewrite:trace1

# 2.2
RewriteLog /home/ysoftman/logs/apache/rewrite_log

# 2.4
별도의 rewritelog 파일은 지정할 수 없고,
LogLevel 를 사용하면 error_log 에 [rewrite: 로 시작하는 에러가 남겨진다.

# 2.2
# Allow/deny 로 ip 필터링 - 조건1
# 인증(id,password 물어봄) - 조건2
# Satisfy All 이면 조건1, 조건2 을 모두 만족해야 한다.
# Satisfy Any 이면 조건1, 조건2 둘 중 하나만 만족하면 된다.
Satisfy All 또는 Satisfy Any
# 2.4
Satisfy 지시자는 사용하지 않고, Satisfy All 기능이 디폴트로 됐다.

# 효과없어 무시되는 지시자
# 2.2
DefaultType
NameVirtualHost
# 2.4
효과 없음

# Invalid command 'User', perhaps misspelled or defined by a module not included in the server configuration 에러 발생시 다음 모듈 명시한다.
LoadModule unixd_module modules/mod_unixd.so

# Invalid command 'Require', perhaps misspelled or defined by a module not included in the server configuration 에러 발생시 다음 모듈 명시
LoadModule authz_core_module modules/mod_authz_core.so

# Unknown Authz provider: valid-user 에러 발생시 다음 모듈을 명시
LoadModule authz_user_module modules/mod_authz_user.so

# 위 모듈들은 configure 시 다음과 같이 옵션으로 모듈(.so) 빌드해서 생성한다.
--enable-mods-shared="unixd authz_core authz_user"

comments:

댓글 쓰기