apache+mod_url 연동하기 – 한글 파일 다운로드 문제

한글로 된 URL 을 정상적으로처리할 수 있게 하는 mod_url.c

브라우저에서 주소창에서 한글URL 또는 웹페이지상의 한글로된 이미지 파일이 처리가 제데로 되지 않아서 깨져 보일때 mod_url을 사용하면 됨

  

1.  DSO 방식으로 설치된 APACHE

/usr/local/apache/bin/httpd -l

Compiled in modules:

  core.c

  prefork.c

  http_core.c

  mod_so.c    —> (DSO 방식으로 설치된것을 확인할수 있는 모듈)

http_core.c , mod_so.c 위의 mod_so.c 모듈이올라와잇다면 간단하게 추가 가능.

mod_url.c 파일은 홈페이지의 다운로드 페이지(http://angelsoma.com/zboard.php?id=download)에서 다운받는다.

* mod_url.c 파일이 install.smileserv.com 에도 파일이 있지만. 잘 선택하여야 한다. 실제 해당 파일이 문제가 있는 파일일 경우가 굉장히 많이 때문에 주의하도록 한다.

1-1 설치

/usr/local/apache/bin/apxs -i -a -c mod_url.c

gcc -DLINUX=22 -DHAVE_SET_DUMPABLE -I/usr/include/gdbm -DUSE_HSREGEX -fpic -DSHARED_CORE -DSHARED_MODULE -I/usr/local/apache/include  -c mod_url.c

gcc -shared -o mod_url.so mod_url.o

[activating module `redurl’ in /usr/local/apache/conf/httpd.conf]

cp mod_url.so /usr/local/apache/libexec/mod_url.so

chmod 755 /usr/local/apache/libexec/mod_url.so

cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak

cp /usr/local/apache/conf/httpd.conf.new /usr/local/apache/conf/httpd.conf

rm /usr/local/apache/conf/httpd.conf.new

1-2 확인

vi /usr/local/apache/conf/httpd.conf

LoadModule redurl_module      libexec/mod_url.so

AddModule mod_url.c

위의 두 파일이 추가가 되었다면 정상적으로 설치되었다고 판단할 수 있다.

1-3 활성화

vi /usr/local/apache/conf/httpd.conf

<ifModule mod_url.c>

CheckURL On

</ifModule>

conf 파일에 위의 문장을 아무곳에나 추가한다.

1-4 데몬 재 시작

/usr/local/apache/bin/apachectl restart

apxs 가 설치되어있지 않은 경우는 아래와 같이 설치한다.

2-1 설치

cp mod_url.c /usr/local/apache/include

cd /usr/local/apache/include

gcc -fpic -DSHARED_MODULE -l/usr/include/apache -DEAPI -c mod_url.c

ls -al mod_url.o

gcc -shared -o mod_url.so mod_url.o

ls -al mod_url.so

cp mod_url.so /usr/local/apache/libexec

chmod 755 /usr/local/apache/libexec/mod_url.so

2-2 추가

vi /usr/local/apache/conf/httpd.conf

LoadModule redurl_module      libexec/mod_url.so

AddModule mod_url.c

위의 두가지 파일을 추가한다.

2-3 데몬 재시작

/usr/local/apache/bin/apachectl restart

2. STATIC  하게 설치된 APACHE

[root@soma bin]# /usr/local/apache/bin/apxs -i -a -c mod_url.c

apxs:Error: Sorry, no DSO support for Apache available

apxs:Error: under your platform. Make sure the Apache

apxs:Error: module mod_so is compiled into your server

apxs:Error: binary `/usr/local/apache/bin/httpd’.

DSO 방식으로 설치되지 않고 STATIC 하게 설치된 아피치의 경우 위의 오류메시지를 확인할 수 있다.

메시지를 보시면 DSO 가 지원안된다는 것을 확인할 수 있을것이다.

DSO 방식이로 설치되어있지 않을 경우는 apache,php를 재 컴파일 해줘야한다.

방법은 아래와 같다.

2-1. apache 재 컴파일

[root@soma php-4.3.5]# cd ../apache_1.3.28

[root@soma apache_1.3.28]# ./configure –activate-module=src/modules/php4/libphp4.a

                                                           –add-module=src/modules/extra/mod_redurl.c

                                          

주) mod_redurl.c 모듈을 구해서 apache_1.3.28/src/modules/extra 디렉토리 및에 미리 가져다 놓았다.

[root@soma apache_1.3.28]# make

[root@soma apache_1.3.28]# make install

2-2. conf 파일에 추가

[root@soma apache_1.3.28]# vi /usr/local/apache/conf/httpd.conf

<ifModule mod_url.c>

CheckURL On

</ifModule>

위의 3줄을 아무곳에나 추가시킨다.

2-3. apache 데몬 시작

[root@soma apache_1.3.28]# /usr/local/apache/bin/apachectl restart

2-4. 모듈확인하기

[root@soma src]# /usr/local/apache/bin/httpd -l

http_core.c

mod_env.c

mod_log_config.c

mod_mime.c

mod_negotiation.c

mod_status.c

mod_include.c

mod_autoindex.c

mod_dir.c

mod_cgi.c

mod_asis.c

mod_imap.c

mod_actions.c

mod_userdir.c

mod_alias.c

mod_access.c

mod_auth.c

mod_setenvif.c

mod_php4.c

mod_redurl.c -> 새롭게 추기된 모듈

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.