使用 Apache 安装 MaxMind
如果我们尝试在实时服务器上安装,可能是在云中或者托管的服务器上,我们可以使用 wget 命令下载 tar包。
从这里下载 mod_maxminddb tar包:https://github.com/maxmind/mod_maxminddb/releases
我安装 mod_maxminddb 的具体步骤如下:
- wget [URL_TO_tar包_FILE] -P ~/
- tar -xvzf [PATH_TO_tar包_FILE] -C ~/
- cd [PATH_TO_EXTRACTED_tar包]
- ./configure
- sudo make install
~ 是主目录的缩写。
这将自动安装并启用该模块。
之后我要做的就是使用数据库文件的链接更新我的 Apache 配置文件。
我们可以从 MaxMind 的网站下载数据库文件,请继续阅读以了解如何操作。
安装或者更新数据库
要自动执行以下过程,请阅读本教程:自动更新 GeoIP 数据库
第一次尝试手动安装是个好主意,以便我们熟悉该过程。
1.同样,只需使用 wget 从 maxminds 网站下载数据库文件。
数据库可以在这里找到:https://dev.maxmind.com/geoip/geoip2/geolite2/
2.下载文件后,解压内容,然后将数据库文件移动到/usr/local/share/
这可能取决于发行版,但有时我们可能会在更新系统时丢失存储在非标准位置的文件。
我们可以通过将它们存放在安全的位置来避免这种风险。
/usr/local/share/位置很好,因为它是保存数据库的安全“标准”位置。
链接 GeoIP 数据库
1.我们应该链接到 Apache 配置文件中的数据库文件。
在配置中添加以下内容:
MaxMindDBEnable On MaxMindDBFile COUNTRY_DB /usr/local/share/GeoIP/GeoLite2-Country.mmdb MaxMindDBFile CITY_DB /usr/local/share/GeoIP/GeoLite2-City.mmdb MaxMindDBEnv COUNTRY_CODE COUNTRY_DB/country/iso_code MaxMindDBEnv CONTINENT_CODE CITY_DB/continent/code
由于我在我的服务器上托管多个站点,因此我将其添加到 /etc/apache2/sites-available 中的 VHOST 文件中,但我们也可以使用 .htaccess 文件或者主配置。
2.更新或者重新加载 Apache 配置:service apache2 restart
准备工作
- 在安装模块之前,我们还需要安装 libmaxminddb 库。
这可以通过 Ubuntu 中的 PPA 安装。
sudo add-apt-repository ppa:maxmind/ppa sudo apt update sudo apt install libmaxminddb0 libmaxminddb-dev mmdb-bin
更多信息在这里:https://github.com/maxmind/libmaxminddb/blob/master/README.md
如果我们决定从 tar包 而不是 PPA 安装 libmaxminddb,可在此处下载:https://github.com/maxmind/libmaxminddb/releases
2.我们还需要为 apache 版本安装 dev 包,在我的情况下,这是按如下方式完成的:
sudo apt install apache2-dev
如果我们尚未安装 apache2-dev 软件包,我们可能会收到类似这样的配置错误:错误:找不到 apxs。
使用 --with-apxs 设置 apxs。
要为 Apache 安装 并启用 基于地理位置的mod_maxminddb 模块,我们应该从 GitHub 下载 tar包 文件。
我们可以在 GitHub 存储库的发布选项卡下找到它们。
从 tar包 安装在文档中有介绍:http://maxmind.github.io/mod_maxminddb/
请查看官方文档以获取更新说明!
如果我们正确完成了本教程中的所有操作,我们应该能够通过 PHP 中的 $_SERVER 全局访问 GEO 信息。
比如:
echo $_SERVER['COUNTRY_CODE']; //Sometimes return unexpected values (I.e. A1|A2|EU|AP) //See: https://dev.maxmind.com/geoip/legacy/mod_geoip2/for more information