mod_geoIP安装帮助?

Pau*_*aul 5 apache .htaccess geolocation

我正在根据这些说明为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
Run Code Online (Sandbox Code Playgroud)

看起来我错过了什么吗?还有办法测试这个吗?

Emm*_*son 3

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

我认为你做错的唯一一件事是你必须使用二进制数据库文件而不是 CSV 文件。

如果您使用的是基于 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 restart或者sudo invoke-rc.d apache2 restart
  7. 然后使用 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
Run Code Online (Sandbox Code Playgroud)