일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- conemu
- 공매도
- 안드로이드
- Qmail
- 작성중
- Audacity
- uml example
- 주식
- 보안
- KOSPI
- 기술사
- unix
- 알고리즘
- Eclipse
- Algorithm
- ubuntu
- 우분투
- LDAP
- Linux
- java
- IPTV
- 태터수정
- eclipse35
- adb
- IT 키워드
- 도서
- UX
- 코스피
- Android
Archives
- Today
- Total
Do diffence
[apache] 한글 URL 처리 본문
한글로 된 URL을 정상적으로 처리할 수 있게 하는
mod_url.c의
설치 방법은 다음과 같습니다.
현재 실행되고 있는 httpd 프로세스를 확인하여
DSO(Dynamic Shared Object)가
사용 가능한지 확인합니다.
http://kldp.net/projects/modurl
1. DSO 확인
===========
# httpd -l (in debian)
Compiled-in modules:
http_core.c
mod_so.c
mod_php3.c
# /usr/sbin/httpd -l |grep mod_so (in redhat)
mod_so.c
여기서 mod_so.c 가 보이면 DSO를 통해 간편하게
mod_url.c를 설치할 수 있습니다.
2.1. 컴파일(일반적인 경우 RedHat은 아래 참조)
============================================
설치는 아파치 확장 툴인 apxs를 이용합니다.
#apxs -i -a -c mod_url.c
이렇게 실행하면 됩니다.
$ apxs -i -a -c mod_url.c
gcc -fpic -DSHARED_MODULE
-I/path/to/apache/include -c mod_url.c
ld -Bshareable -o mod_url.so mod_url.o
cp mod_url.so /path_to/apache/libexec/mod_url.so
chmod 755 /path_to/apache/libexec/mod_url.so
[activating module `redurl' in
/path_to/apache/etc/httpd.conf]
2.2. 컴파일(RedHat 경우)
========================
레드헷의 경우는 apxs 가 인스톨되지 않습니다.
apache-devel 이 설치되어 있는지 확인하시고,
$ rpm -q apache-devel
apache-devel-1.3.12-25 (버젼은 1.3.9 이상이면 될겁
니다 )
$ gcc -fpic -DSHARED_MODULE -I/usr/include/apache
-c mod_url.c
혹은
$ gcc -fpic -DSHARED_MODULE -I/usr/include/apache
-DEAPI -c mod_url.c
(EAPI 는 버젼 1.3.? 이상에서 지원되는 것인데,
error_log 에서 이에
관련된 warning이 보이면 이를 정의하고 컴파일 하세요.)
$ gcc -shared -o mod_url.so mod_url.o
(혹은 ld -Bshareable -o mod_url.so mod_url.o)
$ su
# cp mod_url.so /usr/lib/apache/
# chmod 755 /usr/lib/apache/mod_url.so
그런 다음, /etc/httpd/conf/httpd.conf 를 열어서 다
음 라인을 추가/확인
[...]는 생략했다는 뜻입니다.
-----------8x-----------
[...]
LoadModule redurl_module modules/mod_url.so
[...]
AddModule mod_url.c
[...]
-----------8x-----------
2.3. mod_url 활성화
===================
아파치 설정 파일인 httpd.conf를 끝부분에
다음과 같은 내용을 추가합니다.
---------8X---------
[...]
<IfModule mod_url.c>
CheckURL On
</IfModule>
--------------------
2.4 재실행
==========
이제 아파치를 재실행하면 한글 URL이 제대로 인식됩니다.
# apachectl restart
(or /etc/init.d/httpd restart or
/etc/rc.d/init.d/httpd restart)
3. 기타
=======
배포본에 패키지 형태로 들어 있는 아파치 웹서버의
대부분은
다양한 모듈들을 사용할 수 있게 하기 위해 DSO를 기
본적으로
사용 가능하게 해 두었으나 소스로부터 컴파일하여 아
파치를 설치한 경우에는
소스를 직접 패치하여야 합니다.
*주의: 이 모듈은 현재 아파치 1.3.9와 1.3.11에서 테
스트되었습니다.
다른 버전에 대해서는 제대로 테스트되지 못하였으니
혹시 다른 버전에 대해서
테스트해 보신 분은 결과를 알려 주시면 본 문서에 반
영하도록 하겠습니다.
*주의: 리눅스의 경우는 glibc-2.1.x 환경에서만 됩니다.
mod_url.c는 glibc-2.1.x의 iconv()함수를 사용합니다.
* iconv() 가 UTF8 <-> EUCKR 을 지원한다면 어떤 시
스템에 대하여도
적용가능할 것입니다.
*아파치 1.3.x/2.0.x 각각의 버전에 대한 소스는 아래에서 찾으시기 바랍니다.
http://cvs.kldp.net/viewcvs/modurl/mod_url/
cvs버전은 per-dir 옵션을 지원하며, EUC-KR뿐만 지원하는 것이 아니라 다음과 같은 방식을 지원합니다.
<IfModule mod_url.c>
CheckURL On
ServerEncoding EUC-KR
ClientEncoding UTF-8
</IfModule>
Encoding옵션을 바꾸면 이 반대의 변환도 지원되며, 기타 iconv가 지원하는 다른 인코딩을 옵션으로 정하실 수 있게 되었습니다.
이것과 관련된 일본의 프로젝트는 다음의 링크를 참조하시기 바랍니다.
http://webdav.todo.gr.jp/
여기서는 mod_encoding 모듈이 mod_url과 비슷한 역할을 하며,
mod_dev에 대한 패치도 제공합니다.
출처 : http://kle.kldp.org
mod_url.c의
설치 방법은 다음과 같습니다.
현재 실행되고 있는 httpd 프로세스를 확인하여
DSO(Dynamic Shared Object)가
사용 가능한지 확인합니다.
http://kldp.net/projects/modurl
1. DSO 확인
===========
# httpd -l (in debian)
Compiled-in modules:
http_core.c
mod_so.c
mod_php3.c
# /usr/sbin/httpd -l |grep mod_so (in redhat)
mod_so.c
여기서 mod_so.c 가 보이면 DSO를 통해 간편하게
mod_url.c를 설치할 수 있습니다.
2.1. 컴파일(일반적인 경우 RedHat은 아래 참조)
============================================
설치는 아파치 확장 툴인 apxs를 이용합니다.
#apxs -i -a -c mod_url.c
이렇게 실행하면 됩니다.
$ apxs -i -a -c mod_url.c
gcc -fpic -DSHARED_MODULE
-I/path/to/apache/include -c mod_url.c
ld -Bshareable -o mod_url.so mod_url.o
cp mod_url.so /path_to/apache/libexec/mod_url.so
chmod 755 /path_to/apache/libexec/mod_url.so
[activating module `redurl' in
/path_to/apache/etc/httpd.conf]
2.2. 컴파일(RedHat 경우)
========================
레드헷의 경우는 apxs 가 인스톨되지 않습니다.
apache-devel 이 설치되어 있는지 확인하시고,
$ rpm -q apache-devel
apache-devel-1.3.12-25 (버젼은 1.3.9 이상이면 될겁
니다 )
$ gcc -fpic -DSHARED_MODULE -I/usr/include/apache
-c mod_url.c
혹은
$ gcc -fpic -DSHARED_MODULE -I/usr/include/apache
-DEAPI -c mod_url.c
(EAPI 는 버젼 1.3.? 이상에서 지원되는 것인데,
error_log 에서 이에
관련된 warning이 보이면 이를 정의하고 컴파일 하세요.)
$ gcc -shared -o mod_url.so mod_url.o
(혹은 ld -Bshareable -o mod_url.so mod_url.o)
$ su
# cp mod_url.so /usr/lib/apache/
# chmod 755 /usr/lib/apache/mod_url.so
그런 다음, /etc/httpd/conf/httpd.conf 를 열어서 다
음 라인을 추가/확인
[...]는 생략했다는 뜻입니다.
-----------8x-----------
[...]
LoadModule redurl_module modules/mod_url.so
[...]
AddModule mod_url.c
[...]
-----------8x-----------
2.3. mod_url 활성화
===================
아파치 설정 파일인 httpd.conf를 끝부분에
다음과 같은 내용을 추가합니다.
---------8X---------
[...]
<IfModule mod_url.c>
CheckURL On
</IfModule>
--------------------
2.4 재실행
==========
이제 아파치를 재실행하면 한글 URL이 제대로 인식됩니다.
# apachectl restart
(or /etc/init.d/httpd restart or
/etc/rc.d/init.d/httpd restart)
3. 기타
=======
배포본에 패키지 형태로 들어 있는 아파치 웹서버의
대부분은
다양한 모듈들을 사용할 수 있게 하기 위해 DSO를 기
본적으로
사용 가능하게 해 두었으나 소스로부터 컴파일하여 아
파치를 설치한 경우에는
소스를 직접 패치하여야 합니다.
*주의: 이 모듈은 현재 아파치 1.3.9와 1.3.11에서 테
스트되었습니다.
다른 버전에 대해서는 제대로 테스트되지 못하였으니
혹시 다른 버전에 대해서
테스트해 보신 분은 결과를 알려 주시면 본 문서에 반
영하도록 하겠습니다.
*주의: 리눅스의 경우는 glibc-2.1.x 환경에서만 됩니다.
mod_url.c는 glibc-2.1.x의 iconv()함수를 사용합니다.
* iconv() 가 UTF8 <-> EUCKR 을 지원한다면 어떤 시
스템에 대하여도
적용가능할 것입니다.
*아파치 1.3.x/2.0.x 각각의 버전에 대한 소스는 아래에서 찾으시기 바랍니다.
http://cvs.kldp.net/viewcvs/modurl/mod_url/
cvs버전은 per-dir 옵션을 지원하며, EUC-KR뿐만 지원하는 것이 아니라 다음과 같은 방식을 지원합니다.
<IfModule mod_url.c>
CheckURL On
ServerEncoding EUC-KR
ClientEncoding UTF-8
</IfModule>
Encoding옵션을 바꾸면 이 반대의 변환도 지원되며, 기타 iconv가 지원하는 다른 인코딩을 옵션으로 정하실 수 있게 되었습니다.
이것과 관련된 일본의 프로젝트는 다음의 링크를 참조하시기 바랍니다.
http://webdav.todo.gr.jp/
여기서는 mod_encoding 모듈이 mod_url과 비슷한 역할을 하며,
mod_dev에 대한 패치도 제공합니다.
출처 : http://kle.kldp.org