### apache2에서 geoip 적용
wget http://mirror.koreaidc.com/geoip/GeoIP-1.4.6.tar.gz
wget http://mirror.koreaidc.com/geoip/mod_geoip2_1.2.5.tar.gz
wget http://mirror.koreaidc.com/geoip/GeoLiteCity.dat.gz
[root@ns1 ~]# yum -y install GeoIP GeoIP-devel GeoIP-data perl-Geo-IP
만약 yum이 되지 않으면 소스 컴파일로 작업해야 한다
### 소스컴파일 작업
[root@ns1 ~]# tar xvfz GeoIP-1.4.6.tar.gz
[root@ns1 ~]# cd GeoIP-1.4.6
[root@ns1 GeoIP-1.4.6]# ./configure && make && make install
### 위에서 yum으로 설치되었으면 컴파일 작업 하지 않아도 된다
### 아파치2에 geoip모듈 올리기
[root@ns1 ~]# tar xvfz mod_geoip2_1.2.5.tar.gz
[root@ns1 ~]# cd mod_geoip2_1.2.5
[root@ns1 mod_geoip2_1.2.5]# apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c
[root@ns1 mod_geoip2_1.2.5]# vi /usr/local/apache/conf/httpd.conf
모듈이 올라왔는지 확인한다
LoadModule geoip_module modules/mod_geoip.so
[root@ns1 mod_geoip2_1.2.5]# ll /usr/local/apache/modules/mod_geoip.so
-rwxr-xr-x 1 root root 37883 11월 25 11:45 /usr/local/apache/modules/mod_geoip.so
geoip 파일의 압축을 푼다
[root@ns1 mod_geoip2_1.2.5]# cd /root
[root@ns1 ~]# gzip -d GeoLiteCity.dat.gz
[root@ns1 ~]# mkdir /var/geoip/
[root@ns1 ~]# mv GeoLiteCity.dat /var/geoip/
확인
[root@ns1 ~]# ll /var/geoip/
-rw-r–r– 1 root root 27938026 11월 3 04:51 GeoLiteCity.dat
아파치 환경 설정에 mod_geoip를 사용할수 있게 설정한다
[root@ns1 ~]# vi /usr/local/apache/conf/httpd.conf
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /var/geoip/GeoLiteCity.dat
</IfModule>
그리고 Logformat 형식을 아래와 같이 입력한다
vi /usr/local/apache/conf/httpd.conf
LogFormat “%V %h %l %u %t \”%r\” %s %b \”%{Referer}i\” \”%{User-Agent}i\” %{Host}i %{GEOIP_COUNTRY_CODE}e” vcommon
만약 vhosts 파일을 사용한다면 log파일 형식을
combined —> vcommon으로 수정해 준다
[root@ns1 ~]# killall -9 httpd
[root@ns1 ~]# apachectl start
로그파일에 국가 코드가 나오는지 확인한다 (kr)
awstats 설치
[root@ns1 ~]# wget http://mirror.koreaidc.com/webalizer/awstats-6.95.tar.gz
[root@ns1 ~]# tar xvfz awstats-6.95.tar.gz
[root@ns1 ~]# mkdir /usr/local/awstats
[root@ns1 ~]# cp -a awstats-6.95/* /usr/local/awstats/
[root@ns1 ~]# cd /usr/local/awstats/tools
[root@ns1 tools]# ./awstats_configure.pl
y입력
도메인입력
엔터
엔터
[root@ns1 tools]# vi /etc/awstats/awstats.xinet.kr.conf
51번라인
LogFile=”/usr/local/apache/logs/access_log
203번라인
DirData=”/usr/local/awstats”
905번라인
Lang=”ko”
1312번라인에 아래 2줄 기입 (실제 국가코드가 있는 dat파일과 city파일이 있는 dat 파일의 경로를 지정해 주면된다)
LoadPlugin=”geoip GEOIP_STANDARD /var/lib/GeoIP/GeoIP.dat”
LoadPlugin=”geoip_city_maxmind GEOIP_STANDARD /var/geoip/GeoLiteCity.dat”
이것을 그대로 복사해서 붙혀넣기 하면 ( ” “) 표시가 되지 않는다 복사후 ” 꼭 입력해야 한다 그래야 아래 실행시 에러 메세지를 표시안해준다
awstats를 실행한다
[root@ns1 tools]# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=xinet.kr
스크립트 작성
[root@ns1 tools]# vi /shell/awstat
#!/bin/bash
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=unifree3.nayana.com -update
[root@ns1 tools]# chmod 700 /shell/awstat
10분마다 awstat를 실행할수 있게 cron에 등록
[root@ns1 tools]# crontab -e
*/10 * * * * /shell/awstat # awstat 로그
[root@ns1 tools]# /etc/rc.d/init.d/crond restart
http://xinet.kr/awstats/awstats.pl?config=xinet.kr
암호인증을 해놨기 때문에 패스워드를 입력해야 한다 (아파치 암호인증은 여기 apache 폴더의 글 내용 참고)