본문 바로가기

개발/리눅스

mod_cband 를 설치 해 보자 #1

반응형

mod_cband는 트래픽을 제어할 수 있는 아파치 모듈입니다.

설치 할 때마다 찾아 다니기 힘드니 정리를 해 두고자 이렇게..

(아파치 2.4.x 에서 mod_cband 설치하기)



1. 설치 파일을 구합니다. (mod-cband-0.9.7.5.tgz)



2. 압축을 풀죠

# tar -zxvpf mod-cband-0.9.7.5.tgz


3. 압축이 풀린 디렉토리로 이동합니다.

# cd mod-cband-0.9.7.5



4. 설치 준비를 합니다.

# ./configure --with-apxs=/home/apache/bin/apxs

(--with-apxs=/home/apache/bin/apxs 는 아파치 apxs의 경로입니다.)


checking for gcc... gcc

checking for C compiler default output file name... a.out

checking whether the C compiler works... yes

checking whether we are cross compiling... no

checking for suffix of executables... 

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

.

.

.

.

checking for sys/socket.h... yes

checking arpa/inet.h usability... yes

checking arpa/inet.h presence... yes

checking for arpa/inet.h... yes

configure: creating ./config.status

config.status: creating Makefile



5. 컴파일

# make


src/mod_cband.c: In function 'mod_cband_create_traffic_size':

src/mod_cband.c:1054: warning: comparison with string literal results in unspecified behavior

src/mod_cband.c:1054: warning: comparison with string literal results in unspecified behavior

src/mod_cband.c:1058: warning: comparison with string literal results in unspecified behavior

src/mod_cband.c:1058: warning: comparison with string literal results in unspecified behavior

src/mod_cband.c: In function 'mod_cband_get_dst':

src/mod_cband.c:1333: error: 'conn_rec' has no member named 'remote_ip'

src/mod_cband.c: In function 'mod_cband_get_remote_host':

src/mod_cband.c:1362: error: 'struct conn_rec' has no member named 'remote_ip'

src/mod_cband.c:1363: error: 'struct conn_rec' has no member named 'remote_ip'

src/mod_cband.c:1365: error: 'struct conn_rec' has no member named 'remote_addr'

apxs:Error: Command failed with rc=65536

.

make: *** [src/.libs/mod_cband.so] Error 1


...에러난다 -_-

apache 2.4.x 부터는 소스에서 수정 해줘야 할게 있다고 합니다.



6. 소스 수정

# vi src/mod_cband.c



위 이미지에 표시한 곳을 수정해야 합니다.


1333 라인 : remote_ip -> client_ip

1342 라인 : remote_ip -> client_ip

1362 라인 : remote_ip -> client_ip

1363 라인 : remote_ip -> client_ip

1365 라인 : remote_addr -> client_addr


(vi 에서 라인 보는 명령어 :set nu)




7. 다시 컴파일

# make

/home/apache/bin/apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -c src/mod_cband.c

/home/apache/build/libtool --silent --mode=compile gcc -std=gnu99 -prefer-pic   -DLINUX -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/home/apache/include  -I/home/apache/include   -I/home/apache/include  -Wall -DDST_CLASS=3  -c -o src/mod_cband.lo src/mod_cband.c && touch src/mod_cband.slo

src/mod_cband.c: In function 'mod_cband_create_traffic_size':

src/mod_cband.c:1054: warning: comparison with string literal results in unspecified behavior

src/mod_cband.c:1054: warning: comparison with string literal results in unspecified behavior

src/mod_cband.c:1058: warning: comparison with string literal results in unspecified behavior

src/mod_cband.c:1058: warning: comparison with string literal results in unspecified behavior

/home/apache/build/libtool --silent --mode=link gcc -std=gnu99    -o src/mod_cband.la  -rpath /home/apache/modules -module -avoid-version    src/mod_cband.lo


write "make install" to install module



8. 설치

# make install

/home/apache/bin/apxs -Wc,-Wall -Wc,-DDST_CLASS=3 -i -a -n cband src/mod_cband.la

/home/apache/build/instdso.sh SH_LIBTOOL='/home/apache/build/libtool' src/mod_cband.la /home/apache/modules

/home/apache/build/libtool --mode=install install src/mod_cband.la /home/apache/modules/

libtool: install: install src/.libs/mod_cband.so /home/apache/modules/mod_cband.so

libtool: install: install src/.libs/mod_cband.lai /home/apache/modules/mod_cband.la

libtool: install: install src/.libs/mod_cband.a /home/apache/modules/mod_cband.a

.

.

.

.

See any operating system documentation about shared libraries for

more information, such as the ld(1) and ld.so(8) manual pages.

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

chmod 755 /home/apache/modules/mod_cband.so

[activating module `cband' in /home/apache/conf/httpd.conf]



설치 완료!

httpd.conf 를 보면

LoadModule cband_module       modules/mod_cband.so

모듈이 추가 된 것을 확인 할 수 있습니다!




반응형

'개발 > 리눅스' 카테고리의 다른 글

Let's Encrypt 인증서 설치 및 적용하기 #1  (2) 2018.10.17
yum 으로 php 7.2 설치하기  (0) 2018.09.20
아파치 이눔시키  (0) 2018.06.27
파일 내 내용을 찾아보자  (0) 2018.01.03
mod_cband 를 설치 해 보자 #2  (3) 2017.06.07