Apache-2.2

php geoip 在 ubuntu 18.04 上不起作用

  • August 7, 2020

我無法讓 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 模組不工作

好像你把兩件事混為一談了。您為 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']有空。

引用自:https://serverfault.com/questions/1029289