在CentOS 6.3上安装Apache2的mod_geoip
本指南介绍如何在CentOS 6.3系统上使用Apache2设置mod_geoip 。 mod_geoip查找客户端最终用户的IP地址。 这允许您根据其国家/地区重定向或阻止用户。 您也可以将此技术用于您的OpenX (以前称为OpenAds或phpAdsNew)广告服务器,以允许地理位置定位 。
我不会保证这将为您工作!
1初步说明
我假设你有一个正在运行的CentOS 6.3系统,它具有工作的Apache2 + PHP,例如本教程所示: 在CentOS 6.3(LAMP)上安装PHP2和MySQL支持的Apache2 。
2安装mod_geoip
因为mod_geoip不可用于官方CentOS存储库,我们需要启用EPEL存储库:
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm -ivh epel-release-6-7.noarch.rpm
yum install yum-priorities
编辑/etc/yum.repos.d/epel.repo
...
vi /etc/yum.repos.d/epel.repo
...并将行优先级= 10
添加到[epel]
部分:
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
要安装mod_geoip,我们只需运行:
yum install mod_geoip
然后,您可以在/ usr / share / GeoIP目录
中找到GeoIP数据库( GeoIP.dat
)。 随着IP地址的分配可以随着时间的推移而改变,现在下载最新的GeoIP.dat
是个好主意:
cd /usr/share/GeoIP/
mv GeoIP.dat GeoIP.dat_orig
wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
接下来我们重新启动Apache:
/etc/init.d/httpd restart
已经这样了
3短测
要查看mod_geoip是否正常工作,我们可以在我们的一个网页空间中创建一个小PHP文件(例如/ var / www / html
):
vi /var/www/html/geoiptest.php
<?php print_r($_SERVER); ?> |
在浏览器中调用该文件,并显示SERVER
数组,其中包含GEOIP_COUNTRY_CODE
, GEOIP_CONTINENT_CODE
和GEOIP_COUNTRY_NAME的值
(请确保您从公共IP地址(而不是本地IP地址调用该文件) 。
Array
(
[GEOIP_CONTINENT_CODE] => EU
[GEOIP_COUNTRY_CODE] => DE
[GEOIP_COUNTRY_NAME] => Germany
[HTTP_HOST] => 84.143.142.69
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1
[HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
[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
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[SERVER_SIGNATURE] => <address>Apache/2.2.15 (CentOS) Server at www.example.org Port 80</address>
[SERVER_SOFTWARE] => Apache/2.2.15 (CentOS)
[SERVER_NAME] => 84.143.142.69
[SERVER_ADDR] => 192.168.0.100
[SERVER_PORT] => 80
[REMOTE_ADDR] => 84.143.142.69
[DOCUMENT_ROOT] => /var/www/html
[SERVER_ADMIN] => root@localhost
[SCRIPT_FILENAME] => /var/www/html/geoiptest.php
[REMOTE_PORT] => 57421
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /geoiptest.php
[SCRIPT_NAME] => /geoiptest.php
[PHP_SELF] => /geoiptest.php
[REQUEST_TIME] => 1344547179
)
如果要为OpenX广告服务器使用Apache2 + mod_geoip,请确保在“设置”>“主要设置”>“地理位置定位设置”
下选择MaxMind mod_apache GeoIP
:
4使用案例
您可以使用mod_geoip根据其国家/地区重定向或阻止/允许用户。 你可以在这里找到一些有用的例子: http : //www.maxmind.com/app/mod_geoip
5链接
- mod_geoip: http : //www.maxmind.com/app/mod_geoip
- Apache: http : //httpd.apache.org/
- CentOS: http : //www.centos.org/