PHP 에 GeoIP 를 사용할 경우 확장 모듈을 설치 하는 방법 입니다.
http://pecl.php.net/package/geoip
[root@yongbok ~]# cd /usr/local/src
[root@yongbok ~]# wget http://pecl.php.net/get/geoip-1.0.7.tgz
[root@yongbok ~]# wget http://pecl.php.net/get/geoip-1.1.1.tgz (php7 이상일 경우) // 1.1.1 버전은 베타이긴 하나 작동에 이상은 없었다.
[root@yongbok ~]# tar xzvf geoip-1.0.7.tgz
[root@yongbok ~]# cd geoip-1.0.7
[root@yongbok ~]# /usr/local/php5/bin/phpize
[root@yongbok ~]# ./configure --with-php-config=/usr/local/php5/bin/php-config --with-geoip=/usr/local
[root@yongbok ~]# make ; make install
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
php.ini 파일에 GeoIP 구문 추가
[root@yongbok ~]# vi /usr/local/apache2/conf/php.ini
[GeoIP]
extension_dir=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
extension = geoip.so
geoip.custom_directory=/usr/local/share/GeoIP (GeoIP.dat 파일의 경로 정의, 시스템마다 다를수 있음)
아파치 재시작
[root@yongbok ~]# /usr/local/apache2/bin/apachectl restart
phpinfo 로 확인
[root@yongbok ~]# echo '<?php phpinfo(); ?>'>/var/www/phpinfo.php
[출처] http://cy.cyworld.com/home/37141209/post/4BB719E61B15773CBD468401
[추가] php 에서 GeoIP 사용 샘플 (접속자 IP체크하여 국가코드 출력) // 2023. 1. 12 추가됨
<?php
geoip_setup_custom_directory('/home/your_account/');
$a = $_SERVER['REMOTE_ADDR'];
$country = geoip_country_code_by_name($a);
echo "Your IP : ".$a." [$country]";
?>
[설명] geoip_setup_custom_directory() 함수는 이미 php.ini 에 정의되어 있는데 소스코드에 별도로 정의하는 이유는
php.ini 에 정의된 geoip_setup_custom_directory 의 퍼미션이 other가 읽기권한이 없으면 국가코드가 NULL 로
출력되는데 퍼미션 변경이 불가한 상황일 때 위 방법 (일반계정 내에 데이터 파일을 업로드 하고 경로 정의) 을
이용하면 문제 없이 국가코드가 출력된다.
'Works > 확장모듈설치매뉴얼' 카테고리의 다른 글
apache mod_proxy.so 컴파일 방법 (0) | 2023.09.08 |
---|---|
apache mod_unique_id module 추가 (0) | 2023.04.20 |
Zend Guard Loader 설치 (0) | 2017.05.17 |
APC 확장모듈 설치 (0) | 2017.04.26 |
freetds 확장모듈 설치 (0) | 2016.09.27 |