如何在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 地址范围。
就是这样——恭喜!