확장자가 없는 파일 자동인식하는 mod_mime_magic

by 조쉬 posted Mar 18, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

* Incident

 

웹서버에서는 파일을 인식할 때 mime에 등록된 확장자를 참고하여 문서 형식을 결정하고 불러오는데 mime에 등록된 확장자가 아니고 파일의 내용을 통해 자동으로 문서 형식을 결정하는 기능이 필요할 때가 있다. 예를 들면, 아파치 기반의 어떤 사이트의 경우 이미지 파일이 확장자를 사용하지 않도록 개발하는 경우도 있다. 이때 필요한 것이 mod_mime_magic 모듈이다.

 

 

* Resolution

 

- mod_mime_magic 설치


1. 기존 웹서버와 동일한 버전의 아파치 설치파일을 다운로드 후 압축 해제한다.

[root@mooon]# wget https://archive.apache.org/dist/httpd/httpd-2.2.13.tar.gz

[root@mooon]# tar xvfz httpd-2.2.13.tar.gz

[root@mooon]# cd httpd-2.2.13


2. mod_mime_magic.so 파일을 생성한다.

※ 자동으로 /usr/local/apache/modules/ 에 mod_mime_magic.so 파일이 생성되고 httpd.conf 파일에 관련 정보가 추가된다.

[root@mooon]# /usr/local/apache/bin/apxs -i -a -c /root/pkg/httpd-2.2.13/modules/metadata/mod_mime_magic.c


3. 아파치를 재시작 한다.

[root@mooon]# /etc/rc.d/init.d/apachectl configtest

[root@mooon]# /etc/rc.d/init.d/apachectl restart


※ mod_mime_magic 모듈을 적용한 후에도 파일이 정상적으로 열리지 않는 경우가 있다.

이는 FTP에 데이터 전송유형이 자동일 경우 파일업로드 시 확장자가 없는 경우 텍스트파일로 인식하여 아스키(ASCII)모드로 전송된다.

이렇게 전송되는 경우 원본파일과 동일한 데이터가 업로드되지 않고 변조된 데이터가 업로드 됨으로서 파일이 깨지게 된다.

파일질라에서는 [전송 > 전송 유형 > 바이너리]로 변환 후 확장자가 없는 파일을 업로드하면 해결된다.