firelink/tracker-proxy

该软件包最新版本(1.1.0)没有可用的许可信息。

使用 composer.json fork matomo-org/tracker-proxy

1.1.0 2020-09-28 11:36 UTC

This package is not auto-updated.

Last update: 2024-09-25 06:02:15 UTC


README

Build Status

此脚本允许使用 Matomo 跟踪网站,而不会透露 Matomo 服务器 URL。

这对于在同一个 Matomo 服务器上跟踪多个网站但不想在所有跟踪网站的源代码中显示 Matomo 服务器 URL 的用户非常有用。

要求

要正常运行此脚本,您需要

  • 服务器上安装了最新版本的 Matomo
  • 至少一个要使用此 Matomo 跟踪的网站,例如 http://trackedsite.com
  • 要跟踪的网站必须在运行 PHP 5.3 或更高版本的服务器上
  • PHP 必须启用 CURL 扩展或 allow_url_fopen=On

安装

1. 在 Matomo 中创建用户

在您的 Matomo 服务器上

  • 以超级用户身份登录
  • 创建一个用户,例如设置登录名为 "UserTrackingAPI"
  • 将此用户分配为所有要跟踪的网站的 admin 权限
  • 复制此用户的 token_auth:您稍后会用到它

2. 安装代理

您需要在托管网站的同一服务器上安装代理。您可以选择以下两种方式之一

  • 手动下载文件
  • 或使用 git 安装整个存储库

手动下载 matomo.php

使用 git

  • 将存储库: git clone https://github.com/matomo-org/tracker-proxy.git matomo 克隆到您的网站根目录(例如在 http://trackedsite.com/matomo/matomo.php
  • 复制配置模板: cp config.php.example config.php
  • 在新建的 config.php 中更改配置
    • $MATOMO_URL 应包含您的 Matomo 服务器 URL
    • $PROXY_URL 应包含跟踪代理服务器 URL
    • $TOKEN_AUTH 应包含 token_auth

使用 git,您稍后可以通过简单地运行 git pull 来更新。

请注意,使用此方法,matomo.php 和其他文件位于 matomo/ 子目录中。在应用下一步的说明时请注意这一点。

3. 在JavaScript跟踪器中使用代理

代理文件(http://trackedsite.com/matomo.php)将由Matomo JavaScript跟踪器调用,而不是直接调用(秘密的)Matomo服务器(http://your-matomo-domain.example.org/matomo/)。

要实现这一点,请更改您页面页脚中的Matomo JavaScript代码

  • 转到 Matomo > 设置 > 网站管理 > 显示JavaScript跟踪代码

  • 复制JavaScript片段,并将最后一行更改为以下内容

    [...]
    (function() {
        var u="//trackedsite.com/";
        _paq.push(["setTrackerUrl", u+"matomo.php"]);
        _paq.push(["setSiteId", "trackedsite-id"]);
        var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0];
        g.type="text/javascript"; g.async=true; g.defer=true; g.src=u+"matomo.php"; s.parentNode.insertBefore(g,s);
    })();
    </script>
    <!-- End Matomo Code -->

    与正常Matomo代码相比,此代码片段有哪些变化?

    • 秘密的Matomo URL现在被您的网站URL(代理)替换
    • matomo.js变为matomo.php(如果使用了git方法则为matomo/matomo.php):matomo.php是代理脚本
    • 代码末尾的<noscript>部分被移除,因为目前Matomo不使用它,并且它包含您想要隐藏的(秘密的)Matomo URL
    • 确保将trackedsite-id替换为您的idsite
  • 将修改后的Matomo JavaScript代码粘贴到您希望跟踪的页面上。

此修改后的JavaScript代码将通过调用trackedsite.com/matomo.php来跟踪访问/页面/转化,然后自动调用您的(隐藏的)Matomo服务器URL。

在此阶段,example.com应由Matomo跟踪,而不会显示Matomo服务器URL。为Matomo中要跟踪的每个网站重复步骤3。

4.(可选)使用Matomo的Opt Out表单使用代理

跟踪器代理也支持代理matomo opt out表单。要使用此功能,请将opt out iframe中使用的URL更改为使用跟踪器代理的matomo-proxy.php文件。

注意:您可以从Matomo实例中的“管理 > 隐私 > 用户退出”页面获取opt out iframe。

配置

超时

默认情况下,matomo.php代理将等待5秒以获取Matomo服务器的响应。您可以通过编辑config.php中的$timeout值来更改此超时。

User-Agent

默认情况下,matomo.php代理将使用请求matomo.php的客户机的User-Agent与Matomo服务器通信。您可以通过编辑config.php中的$user_agent值来强制代理脚本使用特定的User-Agent。

贡献

如果您发现了一个错误,欢迎您提交一个拉取请求。

运行测试

在运行测试之前,在根存储库目录中创建一个包含以下内容的config.php文件

<?php
$MATOMO_URL = 'https:///tests/server/';
$TOKEN_AUTH = 'xyz';
$timeout = 5;

测试需要一个web服务器指向此存储库的根目录。最简单的方法是使用Vagrant

$ vagrant up
$ vagrant ssh
$ cd /vagrant/tests
$ composer install

使用CURL包装器运行测试

  • 在您的web服务器php.ini中将allow_url_fopen = Off设置为
  • 在phpinfo()中检查allow_url_fopen = Off
  • 运行:vendor/bin/phpunit

使用Fopen包装器运行测试

  • 在您的web服务器php.ini中将allow_url_fopen = On设置为
  • 在phpinfo()中检查allow_url_fopen = On
  • 运行:vendor/bin/phpunit

请注意,测试需要至少PHP 5.4才能运行,但代理本身可以在PHP 5.3上运行。