php geoip 在 ubuntu 18.04 上不起作用

php geoip 在 ubuntu 18.04 上不起作用

我无法让 GeoIP PHP 扩展在装有 PHP 7.2 的 Ubuntu 18.04 上运行

我已经通过 CLI 安装它:sudo apt-get install -y php7.2-geoip

它在系统中启用但不起作用:

php7.2 -i | grep geoip
/etc/php/7.2/cli/conf.d/20-geoip.ini,
geoip
geoip support => enabled
geoip extension version => 1.1.1
geoip library version => 1006012
geoip.custom_directory => no value => no value

使用以下 php 代码进行测试:

<?php
echo $_SERVER['GEOIP_COUNTRY_CODE'];

但 GEOIP 模块不工作

答案1

看起来您混淆了两件事。您安装了 PHP 的 geoip 扩展。但是,$_SERVER['GEOIP_COUNTRY_CODE']它由 Apache mod_geoip 模块填充。

安装 Apache 模块

sudo apt install -y libapache2-mod-geoip

修改文件 /etc/apache2/mods-enabled/geoip.conf 并删除 GeoIPDBFile 前面的 # - 并将 GeoIPENable 设置为On

  GeoIPEnable On
  GeoIPDBFile /usr/share/GeoIP/GeoIP.dat

保存文件,重新启动apache:apache2ctl restart

现在您就可以$_SERVER['GEOIP_COUNTRY_CODE']使用了。

相关内容