我正在基于这些instructions为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

看起来我丢失了什么吗?还有办法测试吗?

最佳答案

我知道您的问题有点老了,但是无论如何它都可以使用答案。

我认为您做错的唯一一件事就是必须使用Binary DB文件而不是CSV文件。

如果您使用的是基于Debian的发行版,请执行以下操作:

  • 安装Apache2和mod_geoip:sudo apt-get install apache2 libapache2-mod-geoip
  • 下载以下选项之一:
  • GeoLiteCountry(仅限国家/地区详细信息):sudo wget -O /etc/apache2/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
  • GeoLiteCity(国家,州和城市级别的详细信息):sudo wget -O /etc/apache2/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
  • Gunzip它:sudo gunzip /etc/apache2/GeoIP.dat.gz
  • 编辑适当的主机文件:sudo nano /etc/apache2/sites-available/default(或您希望使用的任何文件)
  • 将以下内容插入该文件:GeoIPEnable OnGeoIPDBFile /etc/apache2/GeoIP.dat
  • sudo service apache2 restartsudo invoke-rc.d apache2 restart
  • 然后在Apache2或您喜欢的编程语言中使用ENV变量。

  • 如果存在geoip-bin包,则可以使用它而不是在步骤2中下载它。我还没有使用过它,因此我不确定该文件的路径是什么。

    上面的步骤为我提供了这些ENV变量:
    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
    

    关于apache - mod_geoIP安装有帮助吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8299092/

    10-13 06:38