Ubuntu下安装GeoIP | 简单.生活

Ubuntu下安装GeoIP

Category : 工作学习 / Tags : GeoIP, linux, php, ubuntu / Date : 2011.09.10 / 485 views /

什么是GeoIP ?

所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息的一个数据库。GeoIP有两个版本,一个免费版,一个收费版本。收费版本的准确率和数据更好一些。

GeoIP如何使用?

GeoIP支持多种语言调用,这里我们以PHP为例。 

方法一

通过APT安装PHP对GeoIP的支持模块

?View Code BASH
1
install php5-geoip libgeoip1

下载GeoIP数据库

?View Code BASH
1
2
/GeoLiteCity.dat.gz wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

解压数据库

?View Code BASH
1
-d GeoLiteCity.dat.gz

复制GeoIP数据库到数据目录

?View Code BASH
1
/GeoIPCity.dat

注:这里的路径和编译GeoIP C API所使用的–with-dbdir参数有关。

测试GeoIP

重启Apaceh

?View Code BASH
1
/apache2 restart

在Web目录下新建一个测试的PHP文件,这里以geoip.php为例:

?View Code BASH
1
2
3
4
5
6
/geoip.php   <?php $country = geoip_record_by_name('61.128.128.68'); if ($country) { echo 'This host is located in: '; print_r($country); } print geoip_db_filename(GEOIP_COUNTRY_EDITION); ?>

访问这个文件,如出现下面类似信息,则表示成功了。

?View Code BASH
1
2
> Chongqing [postal_code] => [latitude] => 29.562799453735 [longitude] => 106.55280303955 [dma_code] => 0 [area_code] => 0 )

方法二

通过源码方式安装

安装GeoIP C API

?View Code BASH
1
2
3
4
5
6
/GeoIP.tar.gz tar xvzf GeoIP.tar.gz cd GeoIP-1.4.8 ./configure make make install

通过pecl安装geoip模块。

?View Code BASH
1
install geoip

启用GeoIP PHP模块

?View Code BASH
1
2
/geoip.ini extension=geoip.so

复制GeoIP数据库到数据目录

?View Code BASH
1
/GeoIPCity.dat

注:这里的路径和编译GeoIP C API所使用的–with-dbdir参数有关。

测试GeoIP

重启Apaceh

?View Code BASH
1
/apache2 restart

在Web目录下新建一个测试的PHP文件,这里以geoip.php为例:

?View Code BASH
1
2
3
4
5
6
/geoip.php   <?php $country = geoip_record_by_name('61.128.128.68'); if ($country) { echo 'This host is located in: '; print_r($country); } print geoip_db_filename(GEOIP_COUNTRY_EDITION); ?>

访问这个文件,如出现下面类似信息,则表示成功了。

?View Code BASH
1
2
> Chongqing [postal_code] => [latitude] => 29.562799453735 [longitude] => 106.55280303955 [dma_code] => 0 [area_code] => 0 )

一些编译中常见的错误

如果你的系统中的libtool中的版本低于2.2.6b,可能会出现以下错误提示:

?View Code BASH
1
2
3
4, but the libtool: definition of this LT_INIT comes from libtool 2.2.6b. libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6 Debian-2.2.6a-4

解决方法:先执行以下语句后,再重新编译。

?View Code BASH
1
2
3
4
--force ./configure make make install

参考文档

http://www.google.com

http://blog.chinaunix.net/space.php?uid=642374&do=blog&cuid=1944521

http://stackoverflow.com/questions/3096989/libtool-version-mismatch-error

相关文章:

  • 2021-12-06
  • 2021-11-20
  • 2021-11-21
  • 2021-11-21
  • 2021-11-21
  • 2021-11-21
  • 2021-11-21
  • 2021-12-24
猜你喜欢
  • 2022-02-16
  • 2021-09-09
  • 2021-11-15
  • 2022-12-23
  • 2021-11-21
  • 2021-12-03
  • 2021-12-05
相关资源
相似解决方案