存档

文章标签 ‘geoip’

ubuntu服务器安装php geoip拓展教程

2020年11月13日 评论已被关闭

我们可以安装php的geoip拓展来实现获取国家等ip地理信息,简单的说就是实现这个链接的函数功能:https://www.php.net/manual/en/book.geoip.php,如果没有安装拓展,这个链接上面函数的功能是不能使用的。

参考链接:
https://www.maxmind.com/en/home
https://www.miyuru.lk/geoiplegacy(这里可以下载到geoip的dat文件)
https://pecl.php.net/package/geoip
https://www.php.net/manual/en/geoip.setup.php
https://www.php.net/manual/en/book.geoip.php
https://db-ip.com/
https://db-ip.com/db/download/ip-to-city-lite
https://members.ip-api.com/#pricing
https://serverpilot.io/docs/how-to-install-the-php-geoip-extension/
https://blog.csdn.net/xpy870663266/article/details/94742491
https://valynkin.ru/maxmind-geoip2-na-ubuntu-1604-php56.html
https://blog.csdn.net/weixin_34245082/article/details/92028414

简单总结下ubuntu服务器安装php geoip拓展的过程吧
一开始我是在一台vps下操作,源是阿里云的源,装了php5.6,按照网上的搜索依次执行命令,发现遇到各种问题,上方的链接有的也是其中的解决办法,但是就是不行。后来换了一台服务器是官方源,sudo apt-get update之后,可以看到有php5.6-geoip拓展,输入sudo apt-get install php5.6-(按tab键可提示),这样的话就简单了(我怀疑是源的问题,没调试了)
可以看到apt-get里面的拓展,这样就方便了,不用自己编译安装,执行:
sudo apt-get install php5.6-geoip
执行完毕在/usr/share/GeoIP可以看到.dat文件和ipv6的dat文件
是执行完毕后,重启php5.6-fpm,发现问题了,discuz论坛无法回帖了,不过还好,我的需求是php7.4支持就可以了(我的服务器上是php5.6和php7.4共存的),所以我只需要执行:
sudo apt-get install php7.4-geoip
执行完毕后,重启php7.4-fpm,搞定

ubuntu服务器安装php geoip拓展教程就写到这里,只适合本人自己阅读,网友仅供参考(服务器环境有很大区别)

下面备注自动更新数据库的操作方法:
打开maxmind.com:登录后,个人中心:Services->My License Key
创建key之后,点击Download Config下载GeoIP.conf到/etc/GeoIP.conf
sudo apt-get install geoipupdate
安装好之后,需要更新的时候执行:geoipupdate -v
这样就可以自动更新了(可以定时任务执行)
参考:https://www.awaimai.com/2117.html

可以先执行php:var_dump(geoip_database_info());打印当前版本的信息,然后更新之后,再运行一次php,对比2次版本不同。

可是我们发现,/usr/share/GeoIp下面的.dat文件并没有更新,经过测试,从https://www.miyuru.lk/geoiplegacy下载最新的,然后执行:
sduo cd /usr/share/GeoIp/
sudo mkdir test
cd test
sudo wget https://dl.miyuru.lk/geoip/maxmind/city/maxmind4.dat.gz
sudo gunzip maxmind4.dat.gz
sudo wget https://dl.miyuru.lk/geoip/maxmind/city/maxmind6.dat.gz
sudo gunzip maxmind6.dat.gz
cd ../
sudo mv GeoIP.dat GeoIP.dat.bk
sudo mv GeoIPv6.dat GeoIPv6.dat.bk
sudo mv test/maxmind4.dat GeoIP.dat
sudo mv test/maxmind6.dat GeoIPv6.dat
sudo service php7.4-fpm restart
最后php执行:var_dump(geoip_database_info());似乎报错,所以就不折腾了,可能拓展安装的只有等拓展更新了才能更新数据库?有待验证

特别备注:获取ipv6的信息,要使用:
var_dump(geoip_country_code_by_name_v6(‘2601:8:be00:cf20:ca60:ff:fe09:35b5’));


分类: php学习, ubuntu高手 标签: , , , ,
css.php