mod_geoIP安装帮助?

5
我正在根据这些 说明(不太详细,因此有此问题)为基于cpanel的mod_geoIP进行安装。
目前,我已按照说明安装了模块。 我还下载了GeoLite国家的csv文件。 我错过了什么吗?
我认为下一步是在我的 .htaccess 文件中创建允许的国家条目,如下所示:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIPCountryWhois.csv

SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CA AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE MX AllowCountry

Deny from all
Allow from env=AllowCountry

我是否漏掉了什么?此外,有没有一种方法来测试它?


你能看到 GEOIP_COUNTRY_CODE 被设置了吗?例如在某个 PHP 文件中使用 $_ENV["GEOIP_COUNTRY_CODE"]。 - Gerben
1个回答

3

我知道你的问题有点老,但还是可以回答一下。

我认为你唯一做错的事情就是使用了CSV文件而不是二进制DB文件。

如果你正在使用基于Debian的发行版,请执行以下操作:

  1. 安装Apache2和mod_geoip: sudo apt-get install apache2 libapache2-mod-geoip
  2. 下载其中一个:
  3. 解压缩: sudo gunzip /etc/apache2/GeoIP.dat.gz
  4. 编辑适当的主机文件: sudo nano /etc/apache2/sites-available/default (或任何你喜欢的文件)
  5. 将以下内容插入到该文件中:
    GeoIPEnable On
    GeoIPDBFile /etc/apache2/GeoIP.dat
  6. sudo service apache2 restartsudo invoke-rc.d apache2 restart
  7. 然后在Apache2或您喜欢的编程语言中使用ENV变量。
如果存在geoip-bin软件包,您可能可以使用它来替代第2步中的下载。我没有使用过它,所以不确定该文件在哪个路径下。
上述步骤给我这些环境变量:
GEOIP_ADDR          99.99.99.99
GEOIP_CONTINENT_CODE    NA
GEOIP_COUNTRY_CODE      US
GEOIP_COUNTRY_NAME      United States
GEOIP_REGION        TX
GEOIP_REGION_NAME       Texas
GEOIP_CITY          San Antonio
GEOIP_DMA_CODE      641
GEOIP_AREA_CODE     210
GEOIP_LATITUDE      29.488899
GEOIP_LONGITUDE     -98.398697
GEOIP_POSTAL_CODE       78218

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接