我无法让 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']
使用了。