geoip는 접속 아이피의 위치를 확인해 주는 모듈입니다.
apm등에 연동해서 아이피 관련 여러 프로그램들을 짤수도 있고, iptables연동해서 방화벽용으로도 사용합니다.
여기선 apm 연동하여 설치하는 방법을 기록하고자합니다.
apm은 설치되어 있다고 가정합니다.
우선 설치에 필요한 몇가지를 다운 받습니다.
1) # wget http://blog.servis.co.kr/download/geoip/GeoIP-1.4.6.tar.gz
2-1) # wget http://blog.servis.co.kr/download/geoip/GeoIP.dat
2-2) # wget http://blog.servis.co.kr/download/geoip/GeoLiteCity.dat
3) # wget http://blog.servis.co.kr/download/geoip/mod_geoip2_1.2.5.tar.gz
4) # wget http://blog.servis.co.kr/download/geoip/geoip-1.0.7.tgz
각 파일들에 대한 설명입니다.
1) GeoIP-1.4.6.tar.gz는 설치파일입니다.
2) GeoIP.dat.gz 및 GeoLiteCity는 아이피및 위치의 정보를 담고 있는 파일입니다. 이내용들은 수시로 변하므로 최신판으로 받아서 지정한 위치에 붙여 넣어 주면 됩니다.
3) mod_geoip2_1.2.5.tar.gz파일은 아파치와 연동하기위해 설치하는 파일입니다.
(단 아파치가 동적으로 설정되어 있어야 이후 설치가 가능합니다. 동적이라함은 아파치 설치 방법중 하나로 모듈들을 초기에 모두 설치 하지 않고 이후에 추가로 설정해주는 방식으로 ‘apachectl -l’ 을 쳤을시 ‘mod_so.c’가 보이면 동적 설치된것입니다.)
4) geoip-1.0.7.tgz파일은 확장모듈로 php와 연동하기위해 필요한 파일입니다.
설치방법입니다.
1번 받은 파일 압축을 풀고
#tar xvfpz GeoIP-1.4.6.tar.gz
압축푼 폴더로 이동하고
#cd GeoIP-1.4.6
설치합니다.
#./configure –prefix=/usr/local/GeoIP && make && make install
2번대로 넘어가서 받은 최신 ip관련 정보파일을 기존 정보파일 있는곳에 덮어씁니다.
# cp -a GeoIP.dat /usr/local/GeoIP/share/GeoIP/
# cp -a GeoLiteCity.dat /usr/local/GeoIP/share/GeoIP
3번대로 넘어가서 아파치 연동용 파일의 압축을 풀고
# tar xvfpz mod_geoip2_1.2.5.tar.gz
압축푼 폴더로 이동한 후
# cd mod_geoip2_1.2.5
아파치의 apx를 이용해 설치를 합니다.
# /usr/local/apache/bin/apxs -i -a -L /usr/local/GeoIP/lib -I /usr/local/GeoIP/include -lGeoIP -c /usr/local/src/mod_geoip2_1.2.5/mod_geoip.c
—-옵션 대소문자에 유의해야해서 다시 한번 설명
#[아파치apxs경로] -i -a -L [geoip lib경로] -I [geoip include경로] -lGeoIP -c [mod_geoip.c 경로] —inclued경로앞의 -I는 대문자 i이고 -lGeoIP에서 맨앞은 소문자L이므로 주의 하시고 각 옵션뒤의 경로는 띄어써도 되고 붙여도 됩니다.
설치 제대로 되었는지 확인합니다.
# ls -la /usr/local/apache/modules/mod_geoip.so
# grep geoip /usr/local/apache/conf/httpd.conf
httpd.conf에 모듈 적용내용을 적는다
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/local/GeoIP/share/GeoIP/GeoIP.dat
</IfModule>
phpinfo파일을 만들어 웹에서 확인해봅니다.
apache environment 정보에 GEOIP관련 항목들이 있는지 확인합니다. (handler 쪽의 mod_geoip가 아닙니다.)
5번 파일의 압축을 풉니다.
# tar xvfpz geoip-1.0.7.tgz
압축푼 폴더로 이동합니다.
# cd geoip-1.0.7
php의 phpize를 이용해 설치 파일을 만듭니다.
/usr/local/php/bin/phpize
옵션을 주고 설치합니다.
# ./configure –with-php-config=/usr/local/php/bin/php-config –with-geoip=/usr/local/GeoIP
# make && make install
php.ini에 geoip관련 구문 추가합니다.
# vi /usr/local/lib/php.ini
[GeoIP]
extension_dir=/usr/local/php/lib/php/extensions/no-debug-zts-20050922/ —맨뒤폴더이름 다르므로 위치가서 확인한후 적어 놓습니다. (geoip.so파일이 있는위치입니다.)
extension=geoip.so
geoip.custom_directory=/usr/local/GeoIP
이후 아파치를 재시작하고 phpinfo로 확인합니다.
geoip관련 새로운 파트가 생겼을것입니다.