如何在Ubuntu12.04VPS上使用Piwik配置GeoIP(PECL)

来自菜鸟教程
跳转至:导航、​搜索


状态: 已弃用

本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:

原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


介绍

Piwik 总是提供一种根据用户使用的语言检测用户所在国家/地区的方法。 毫无疑问,这不是确定用户来自哪里的可靠且令人满意的方法; 假设位于西班牙的某人正在使用默认语言为英语 EN-US 的计算机访问您的网站,由于 Piwik 根据访问者使用的语言猜测访问者所在的国家/地区,因此该访问将被检测为美国访问。

GeoIP 数据库可用于根据访问者的 IP 地址准确确定访问者的位置。 与必须为每个请求加载数据库的 MaxMind 的 PHP API 相比,PECL(PHP 扩展社区库)扩展将为您提供非常快速的解决方案。

假设

本教程中的步骤要求用户具有 root 权限。 您可以在初始服务器设置教程中了解如何设置它。

此外,本文假设您已安装 Piwik,并在 Apache 的默认根目录中进行了配置:/var/www/piwik。 你可以在这里找到Piwik安装教程

第一步:先决条件

您将需要安装 build-essential,该软件包包含一个信息列表,这些软件包被认为是构建 Debian 软件包所必需的:

sudo apt-get install build-essential

您需要通过 apt-get 安装 PEAR 以获得 PEAR 和 PECL 都使用的必要软件包和分发系统:

sudo apt-get install php-pear

你需要安装 php5-dev 包来获取必要的 PHP5 源文件来编译额外的模块:

sudo apt-get install php5-dev

第二步:安装 GeoIp

运行以下命令:

sudo apt-get install php5-geoip php5-dev libgeoip-dev

然后,运行以下命令:

sudo pecl install geoip

第三步:配置 PHP

安装完成后,它可能会告诉您在 php.ini 文件中找不到 extension= 行。 让我们找到您的 php.ini 文件并添加所需的行:

sudo nano /etc/php5/apache2/php.ini

这将打开您的 php.ini,我们必须将“extension=geoip.so”添加到 [PHP] 部分:

[PHP]
;AFTER THE PHP SECTION NOT BEFORE
extension=geoip.so

现在我们必须将“geoip.custom_directory=/path/to/piwik/misc”添加到 [gd] 部分:

[gd]
;AFTER THE gd SECTION NOT BEFORE
geoip.custom_directory=/var/www/piwik/misc

第四步:安装和重命名 GeoIP 数据库

下载并提取 GeoIP 数据库:

cd /var/www/piwik/misc
sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
sudo gunzip GeoLiteCity.dat.gz

如果数据库名为 GeoLiteCity.dat,PECL 扩展将无法识别该数据库,因此请确保将其命名为 GeoIPCity.dat:

sudo mv GeoLiteCity.dat GeoIPCity.dat

重新启动 Apache Web 服务器:

sudo service apache2 restart

第五步 - 配置 Piwik 以使用 GeoIP PECL

打开您的浏览器并登录到您的 Piwik 页面,转到设置、地理位置,然后选择 GeoIP (PECL) 作为您的位置提供者。

第六步可选 - 更新以前的访问和更新 GeoIP 数据库

要使用当前 GeoIP 数据库重新评估所有先前跟踪的访问,请输入:

cd /var/www/piwik/misc/others
sudo php geoipUpdateRows.php

如果您要处理多次访问,此过程可能需要很长时间:

1 rows to process in piwik_log_visit and piwik_log_conversion...
0% done...
100% done!

请注意,GeoLite 数据库在每个月的第一个星期二更新,您应该定期更新您的 GeoIP 数据库,因为提供商经常重新分配 IP 地址范围。

就是这样——恭喜!