在Fedora 9上安装Lighttpd的mod_geoip
版本1.0
作者:Falko Timme
本指南介绍如何在Fedora 9系统上使用lighttpd设置mod_geoip 。 mod_geoip查找客户端最终用户的IP地址。 这允许您根据其国家/地区重定向或阻止用户。 您也可以将此技术用于您的OpenX (以前称为OpenAds或phpAdsNew)广告服务器,以允许地理位置定位 。
我不会保证这将为您工作!
1初步说明
我假设你有一个运行的Fedora 9系统与工作lighttpd和PHP。
2安装mod_geoip
要为lighttpd安装mod_geoip,我们只需运行:
yum install lighttpd-mod_geoip
然后打开/etc/lighttpd/lighttpd.conf
并将“mod_geoip”
添加到server.modules
部分; 还在server.modules
部分下面添加geoip.db-filename
和geoip.memory-cache
指令:
vi /etc/lighttpd/lighttpd.conf
[...] server.modules = ( # "mod_rewrite", # "mod_redirect", # "mod_alias", "mod_geoip", "mod_access", # "mod_cml", # "mod_trigger_b4_dl", # "mod_auth", # "mod_status", # "mod_setenv", "mod_fastcgi", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_cgi", # "mod_compress", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", "mod_accesslog" ) geoip.db-filename = "/usr/share/GeoIP/GeoIP.dat" geoip.memory-cache = "enable" [...] |
您将在/ usr / share / GeoIP目录
中找到GeoIP数据库( GeoIP.dat
)。 随着IP地址的分配可以随着时间的推移而改变,现在下载最新的GeoIP.dat
是个好主意:
cd /usr/share/GeoIP/
mv GeoIP.dat GeoIP.dat_orig
wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
gunzip GeoIP.dat.gz
重启lighttpd:
/etc/init.d/lighttpd restart
已经这样了
3短测
要查看mod_geoip是否正常工作,我们可以在我们的一个网页空间中创建一个小型的PHP文件(例如/ var / www / lighttpd
)(当然,您必须在lighttpd安装中启用PHP):
vi /var/www/lighttpd/geoiptest.php
<?php print_r($_SERVER); ?> |
在浏览器中调用该文件,并显示SERVER
数组,其中包含GEOIP_COUNTRY_CODE
, GEOIP_COUNTRY_CODE3
和GEOIP_COUNTRY_NAME的值
(请确保您从公共IP地址(而不是本地IP地址调用该文件) 。
Array
(
[HOSTNAME] => server1.example.com
[TERM] => xterm
[SHELL] => /bin/bash
[HISTSIZE] => 1000
[SSH_CLIENT] => 192.168.0.24 3419 22
[QTDIR] =>
[QTINC] => /include
[SSH_TTY] => /dev/pts/0
[USER] => root
[LS_COLORS] => ...
[CCACHE_DIR] => /var/cache/ccache
[MAIL] => /var/spool/mail/root
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[INPUTRC] => /etc/inputrc
[PWD] => /usr/share/GeoIP
[CCACHE_UMASK] => 002
[LANG] => en_US.UTF-8
[SHLVL] => 3
[HOME] => /root
[LOGNAME] => root
[QTLIB] => /lib
[CVS_RSH] => ssh
[SSH_CONNECTION] => 192.168.0.24 3419 192.168.0.100 22
[LESSOPEN] => |/usr/bin/lesspipe.sh %s
[G_BROKEN_FILENAMES] => 1
[_] => /usr/sbin/lighttpd
[PHP_FCGI_CHILDREN] => 1
[FCGI_ROLE] => RESPONDER
[SERVER_SOFTWARE] => lighttpd/1.4.19
[SERVER_NAME] => 84.143.142.69
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PORT] => 80
[SERVER_ADDR] => 192.168.0.100
[REMOTE_PORT] => 59559
[REMOTE_ADDR] => 84.143.142.69
[SCRIPT_NAME] => /geoiptest.php
[PATH_INFO] =>
[SCRIPT_FILENAME] => /var/www/lighttpd/geoiptest.php
[DOCUMENT_ROOT] => /var/www/lighttpd/
[REQUEST_URI] => /geoiptest.php
[QUERY_STRING] =>
[REQUEST_METHOD] => GET
[REDIRECT_STATUS] => 200
[SERVER_PROTOCOL] => HTTP/1.1
[HTTP_HOST] => 84.143.142.69
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
[HTTP_ACCEPT] => ...
[HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip,deflate
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
[HTTP_KEEP_ALIVE] => 300
[HTTP_CONNECTION] => keep-alive
[GEOIP_COUNTRY_CODE] => DE
[GEOIP_COUNTRY_CODE3] => DEU
[GEOIP_COUNTRY_NAME] => Germany
[PHP_SELF] => /geoiptest.php
[REQUEST_TIME] => 1211821794
)
如果要为OpenX广告服务器使用lighttpd + mod_geoip,请确保在“设置”>“主要设置”>“地理位置定位设置”
下选择MaxMind mod_apache GeoIP
。 这也适用于lighttod + mod_geoip。
4链接
- lighttpd mod_geoip: http : //trac.lighttpd.net/trac/wiki/Docs : ModGeoip
- GeoIP数据库: http : //www.maxmind.com/download/geoip/database
- Fedora: http : //fedoraproject.org