2011-11-28 176 views
5

我安裝mod_geoIP基於這些instructions(不是很詳細,因此這個問題)mod_geoIP安裝幫助?

的cPanel在這一點上,我已經安裝了模塊的指示。我也下載了GeoLite國家的csv文件。 AM我錯過了什麼?

我認爲下一步是創建,允許各國在我的.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 

它看起來像我缺少什麼?還有一種方法來測試這個?

+0

這不起作用? –

+0

你能看到GEOIP_COUNTRY_CODE被設置了嗎?例如使用$ _ENV [「GEOIP_COUNTRY_CODE」]是一些PHP文件。 – Gerben

回答

1

我知道你的問題有點舊,但它可以使用一個答案。

我認爲你唯一錯的是你必須使用二進制數據庫文件而不是CSV文件。

如果您使用的是基於Debian的發行,這樣做:

  1. 安裝的Apache2和mod_geoip:sudo apt-get install apache2 libapache2-mod-geoip
  2. 下載下列操作之一:
  3. gunzip解壓: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. 然後使用ENV2變量內的Apache2或您最喜歡的編程語言。

如果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