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 -> 새롭게 추기된 모듈