firelink / tracker-proxy
使用 composer.json fork matomo-org/tracker-proxy
This package is not auto-updated.
Last update: 2024-09-25 06:02:15 UTC
README
此脚本允许使用 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
- 下载
matomo.php
、下载piwik.php
、proxy.php
、matomo-proxy.php
&plugins/HeatmapSessionRecording/configs.php
到您的网站根目录,例如在 http://trackedsite.com/matomo.php、http://trackedsite.com/piwik.php、http://trackedsite.com/proxy.php、http://trackedsite.com/matomo-proxy.php & http://trackedsite.com/plugins/HeatmapSessionRecording/configs.php - 编辑文件以设置配置变量
$MATOMO_URL
应包含您的 Matomo 服务器 URL$PROXY_URL
应包含跟踪代理服务器 URL$TOKEN_AUTH
应包含token_auth
使用 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上运行。