【问题标题】:mod_geoIP installation help?mod_geoIP 安装帮助?
【发布时间】:2011-11-28 16:38:23
【问题描述】:

我正在根据这些instructions 为 cpanel 安装 mod_geoIP(不是很详细,因此提出了这个问题)

此时,我已经按照说明安装了模块。我还下载了 GeoLite Country 的 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 吗?例如使用 $_ENV["GEOIP_COUNTRY_CODE"] 是一些 php 文件。

标签: apache .htaccess geolocation


【解决方案1】:

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

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

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

  1. 安装 Apache2 和 mod_geoip:sudo apt-get install apache2 libapache2-mod-geoip
  2. 下载其中之一:
    • GeoLiteCountry(仅限国家/地区详细信息):sudo wget -O /etc/apache2/GeoIP.dat.gz @987654321@
    • GeoLiteCity(国家、州和城市级别的详细信息):sudo wget -O /etc/apache2/GeoIP.dat.gz @987654322@
  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 中下载它。我没有使用它,所以我不确定该文件的路径。

以上步骤为我提供了这些 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

【讨论】:

    猜你喜欢
    • 2010-12-15
    • 2011-07-28
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多