2010年8月18日水曜日

peclのgeoipを使う

PECL::Package::geoipを使いたい。
で、peclでinstallコマンド叩いてみたけどgeoipがはいらない。(環境はCentOS 5.5です)

$ sudo pecl install geoip
downloading geoip-1.0.7.tgz ...Starting to download geoip-1.0.7.tgz (9,416 bytes).....done: 9,416 bytes
....
checking for geoip files in default path... not found
configure: error: Please reinstall the geoip distribution
ERROR: `/var/tmp/geoip/configure' failed

調べた。
- Problems installin GeoIP - PHP

geoip-develを入れてみるといいらしい。

$ yum install geoip
$ yum install geoip-devel

geoip-devel入れてもう一度。
$ sudo pecl install geoip
..........
Build process completed successfully
Installing '/usr/lib/php/modules/geoip.so'
install ok: channel://pecl.php.net/geoip-1.0.7
configuration option "php_ini" is not set to php.ini location
You should add "extension=geoip.so" to php.ini

入った。

php.iniに追記
; Enable geoip extension module (added by kasahi 2010/08/17)
extension=geoip.so

geoip.phpを作ってたたいてみる。
<?php
$host = 'www.yahoo.co.jp';
var_dump(geoip_country_code_by_name($host));
?>
$ php geoip.php
string(2) "JP"
www.yahoo.co.jpは日本にあるそうです。