我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

苏南大叔相信,对于pecl扩展,应该大多数人都有多多少少的排斥心理。因为毕竟调试和安装都不是太容易。如果您使用window环境,那么使用phpstudy,来管理和启用pecl扩展,是蛮方便的事情。如果你使用linux环境,那么使用宝塔面板,那么也是不错的选择。

苏南大叔:centos7 系统,php71 如何安装 GeoIP 扩展 - php71_geoip
centos7 系统,php71 如何安装 GeoIP 扩展(图4-1)

本文测试环境:centos7+php71+宝塔面板

方案1:下载成品geoip扩展

但是,这两个很简单的选择的背后,如果碰上里面并没有内置的pecl扩展的话,掩盖在美好背后的事实,就变得狰狞起来了。你需要到pecl.php.net上面,去下载对应扩展的dll,而且要注意和你的php搭配,有ntsts区分,有vc10/vc11之类的区分,有dllso之类的区分。一个不留神,就搞错了。

GeoIp的相关扩展下载位置:http://pecl.php.net/package/geoip

方案2:自行编译安装geoip

当然,你也可以像本文中所提到的一样,自行编译扩展文件并启用。这样是最保险的办法。不过,过程不是很简单。下面的脚本,是苏南大叔多次实验得出的结论。实际执行的时候,可能需要你一条一条执行,请不要一次性都塞到终端里面。

脚本如下:

yum install GeoIP GeoIP-data GeoIP-devel
wget http://pecl.php.net/get/geoip-1.1.1.tgz
tar zxvf geoip-1.1.1.tgz
cd geoip-1.1.1
/www/server/php/71/bin/phpize
./configure --with-php-config=/www/server/php/71/bin/php-config --with-geoip
make && make install

上述命令,是苏南大叔在 ~ 目录下面操作的,也就是说,上述命令的发生地址是:/root/

苏南大叔:centos7 系统,php71 如何安装 GeoIP 扩展 - pwd
centos7 系统,php71 如何安装 GeoIP 扩展(图4-2)

  • /www/server/php/71 这个路径,是宝塔面板里面自带的php71的默认路径,你可以根据你的实际情况更改。
  • geoip-1.1.1.tgz这个文件地址路径,是苏南大叔从pecl扩展网站 http://pecl.php.net/package/geoip 这里获得的。

编译完成后,就可以得到一个geoip.so文件了,然后利用php.ini愉快的加载geoip.so吧。

苏南大叔:centos7 系统,php71 如何安装 GeoIP 扩展 - piwik_geoip_010
centos7 系统,php71 如何安装 GeoIP 扩展(图4-3)

苏南大叔:centos7 系统,php71 如何安装 GeoIP 扩展 - phpini
centos7 系统,php71 如何安装 GeoIP 扩展(图4-4)

下载数据dat文件

安装成功后,记得下载对应的数据库dat文件。

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
mv GeoLiteCity.dat /var/lib/GeoIP/GeoIPCity.dat

这个dat文件最终要mov到什么位置,这个和您自己的系统有关系。

请自行检查php.ini中的geoip.custom_directory相关设置。例如在piwik系统中,就是修改了geoip.custom_directory的位置的。修改的办法,有很多种,相信经常关注苏南大叔系列文章的同学,都会修改的。

针对苏南大叔所述的范例来说,我的php.ini里面就应该有一条配置项目是:

geoip.custom_directory="/var/lib/GeoIP/"

当然了,这个目录你可以随便换成任何你喜欢的目录。记得修改php.ini即可,咩有的话,随便加一条就行了。

相关链接

结论

如果您的环境,和苏南大叔的环境一致的话,那么您也可以直接下载得到本文中涉及的geoip.so文件,http://dl.newsn.net/php/pecl/php71/geoip.so ,也许您就可以不必那么麻烦去编译这个东西了。centos下面的编译总是异常痛苦的。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   宝塔面板    geoip