注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

淘尽网 官方博客

淘尽网http://www.tao3w.com做最好的比价网站

 
 
 

日志

 
 
关于我

淘尽网 http://www.tao3w.com 做最好的比价网站,做最好的数据抓取专家。

网易考拉推荐

Ubuntu下安装GeoIP  

2012-08-06 13:35:36|  分类: LINUX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

什么是GeoIP ?

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

  GeoIP如何使用?

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

  方法一

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

1 
apt-get install php5-geoip libgeoip1

  下载GeoIP数据库

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

  解压数据库

1 
gzip -d GeoLiteCity.dat.gz

  复制GeoIP数据库到数据目录

1 
cp GeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat

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

  测试GeoIP

  重启Apaceh

1 
/etc/init.d/apache2 restart

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

1 2 3 4 5 6 
vi /var/www/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); ?>

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

1 2 
This host is located in: Array ( [continent_code] => AS [country_code] => CN [country_code3] => CHN [country_name] => China [region] => 33 [city] => Chongqing  [postal_code] => [latitude] => 29.562799453735 [longitude] => 106.55280303955 [dma_code] => 0 [area_code] => 0 )

  方法二

  通过源码方式安装

  安装GeoIP C API

1 2 3 4 5 6 
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz tar xvzf GeoIP.tar.gz cd GeoIP-1.4.8 ./configure make make install

  通过pecl安装geoip模块。

1 
pecl install geoip

  启用GeoIP PHP模块

1 2 
vi /etc/php5/conf.d/geoip.ini extension=geoip.so

  复制GeoIP数据库到数据目录

1 
cp GeoLiteCity.dat /usr/local/share/GeoIP/GeoIPCity.dat

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

  测试GeoIP

  重启Apaceh

1 
/etc/init.d/apache2 restart

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

1 2 3 4 5 6 
vi /var/www/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); ?>

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

1 2 
This host is located in: Array ( [continent_code] => AS [country_code] => CN [country_code3] => CHN [country_name] => China [region] => 33 [city] => Chongqing  [postal_code] => [latitude] => 29.562799453735 [longitude] => 106.55280303955 [dma_code] => 0 [area_code] => 0 )

  一些编译中常见的错误

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

1 2 3 
libtool: Version mismatch error. This is libtool 2.2.6 Debian-2.2.6a-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

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

1 2 3 4 
autoreconf --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

  评论这张
 
阅读(712)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017