nodenone/extratools

Matomo的额外工具

安装: 2

依赖: 0

建议者: 0

安全: 0

星星: 26

关注者: 18

分支: 11

类型:matomo-plugin


README

一些额外的命令行命令,以帮助维护Matomo。还提供管理部分的phpinfo页面。引入新的控制台命令

  • archive:list
  • config:get
  • database:backup
  • database:create
  • database:drop
  • database:import
  • logger:delete
  • logger:show
  • matomo:install
  • segment:admin
  • segment:list
  • site:add
  • site:delete
  • site:list
  • site:url
  • visits:get
  • customdimensions:configure-new-dimension

背景

创建此插件的主要原因是让自动安装与Matomo一起工作,包括自动更新 - 以及通过json或yaml配置的版本控制交付。

已知问题

matomo:install过程中添加站点目前有问题,但您可以在运行命令后立即运行site:add命令。

./console site:add --name=Foo --urls=https://foo.bar

依赖关系

从版本4.1.0-beta1开始,我们依赖于PHP 8.1。

在主机上

  • mysql-client或mariadb-client(用于数据库任务)
  • PHP json扩展

在composer.json(Matomo根目录)中

从版本4.1.0-beta1开始

  • composer require symfony/yaml:~2.6.0(将其从开发中移除)
  • composer require symfony/process:^5.4

早期版本

  • composer require symfony/yaml:~2.6.0(将其从开发中移除)
  • composer require symfony/process:^3.4

安装

将插件克隆到您的插件文件夹中

git clone https://github.com/digitalist-se/extratools.git ExtraTools

配置

在UI中或更好的是在控制台中激活ExtraTools

console plugin:activate ExtraTools

设置数据库备份路径,使用控制台(使用您想要的路径)

./console config:set 'ExtraTools.db_backup_path="/var/www/html/tmp"'

或手动添加到config.ini.php

[ExtraTools]
db_backup_path = "/var/www/html/tmp"

命令

archive:list

获取正在运行或计划中的核心存档列表,如果存在。

config:get

获取配置部分。@todo - 使其更像config:set - 因此您有更多选项。

database:backup

备份数据库。

database:create

根据config.ini.php中定义的创建数据库。添加--force标志将停止命令询问问题。

database:drop

根据config.ini.php中定义的删除数据库 - 如果需要,首先备份。添加--force标志将停止命令询问问题。

database:import

将数据库转储导入到config.ini.php中定义的数据库,因此如果您已经有了安装 - 它将覆盖它。

logger:delete

从数据库中删除日志条目,这是Matomo的内部日志,不是站点的访问。

logger:show

显示数据库中的日志和查询条目,输出可以导出为CSV。

matomo:install

要使用matomo:install,您需要始终启用ExtraTools,将always_load_commands_from_plugin=ExtraTools添加到common.config.ini.php

这是我们如何在Docker镜像构建中做到的

    echo "[General]" > /var/www/html/config/common.config.ini.php; \
    echo "always_load_commands_from_plugin=ExtraTools" >> /var/www/html/config/common.config.ini.php; \

安装Matamo。清除当前安装 - 默认情况下,它使用config.ini.php文件中的设置 - 但所有值都可以用参数或环境变量覆盖。

如果您有Matomo Premium插件的许可证,请使用正确的许可证令牌设置环境变量MATOMO_LICENSE。环境变量设置为正常环境变量,在shell中使用export设置,在docker-compose文件中,环境数组等。如果设置了变量,Matomo将在安装时设置许可证密钥。

segment:admin

段管理,目前唯一选项是删除或激活段,删除的段以后可以再次激活。

segment:list

列出所有段,包括ID、定义、创建日期和最新更新日期。

site:add

添加一个新的站点进行跟踪。

site:delete

根据提供的ID删除站点。

site:list

列出站点,可选的格式参数 - 支持的输出是文本(默认)、json和yaml。

site:url

将一个或多个URL添加到站点。

visits:get

获取所有归档访问记录,针对单个网站或所有网站。对于某个分区或所有分区,对于今天或其他日期等。

customdimensions:configure-new-dimension

配置一个新的自定义维度。BETA。

要求

Matomo需要一个MySQL/MariaDB主机,并设置了一个允许删除该数据库的用户。第一个用户被创建为超级用户,需要有一个来设置Matomo。如果您没有在环境变量或matomo:install命令中添加值,它将使用默认的用户设置 - 因此,安装后更改该用户的密码非常重要。Matomo还会创建一个用于跟踪的第一个网站,该网站也有默认值,您可以使用环境变量或选项覆盖它们。

您还可以使用json文件进行配置 - 如上所述 - 以及安装插件。这个插件的示例json文件可以在docs文件夹中找到。

环境变量

来自官方Matomo Docker容器的支持默认环境变量

MATOMO_DATABASE_HOST
MATOMO_DATABASE_PORT
MATOMO_DATABASE_TABLES_PREFIX
MATOMO_DATABASE_USERNAME
MATOMO_DATABASE_PASSWORD
MATOMO_DATABASE_DBNAME
MATOMO_DATABASE_ADAPTER

这些可以通过(历史原因)覆盖

MATOMO_DB_HOST
MATOMO_DB_PREFIX
MATOMO_DB_USERNAME
MATOMO_DB_PASSWORD
MATOMO_DB_NAME

其他环境变量

MATOMO_FIRST_USER_NAME
MATOMO_FIRST_USER_EMAIL
MATOMO_FIRST_USER_PASSWORD

MATOMO_FIRST_SITE_NAME
MATOMO_FIRST_SITE_URL

MATOMO_LOG_TIMESTAMP (1)

安装准备

如果您在config目录中有一个config.ini.php,请删除它。运行

console plugin:activate ExtraTools

然后按照以下示例之一操作。

示例安装1(推荐)

console matomo:install --install-file=install.json

示例安装2

console matomo:install --db-username=myuser --db-pass=password \
  --db-host=localhost --db-port=3306 --db-name=matomo --first-site-name=Foo \
  --first-site-url=https//foo.bar --first-user='Mr Foo Bar' \
  --first-user-email=foo@bar.com --first-user-pass=secret

示例安装3

使用环境变量,docker-compose.yml示例。

environment:
      - MATOMO_DB_USERNAME=myuser
      - MATOMO_DB_PASSWORD=secret
      - MATOMO_DB_HOST=mysql
      - MATOMO_DB_PORT=3306
      - MATOMO_DB_NAME=matomo
      - MATOMO_FIRST_USER_NAME=Mr Foo Bar
      - MATOMO_FIRST_USER_EMAIL=foo@bar.com
      - MATOMO_FIRST_USER_PASSWORD=secret
      - MATOMO_FIRST_SITE_NAME=Foo
      - MATOMO_FIRST_SITE_URL=https://foo.bar

值顺序

最高数字 = 取代。如果您在环境变量中有MySQL服务器设置并提供选项--db-username=myuser,则后者用于数据库用户名。

  1. config.ini.php(第一次安装时创建)
  2. 环境变量
  3. 选项(matomo:install --db-username=myuser)
  4. 文件覆盖(matom-install --install-file=install.json)

注意!

  • matamo:install将清除您的当前安装。
  • database:drop - 如其名所示 - 删除整个数据库,在保存数据之前请先备份,并检查是否正常。
  • database:import - 覆盖您当前的数据数据库。
  • site:delete - 真正删除您在Matomo中设置的网站。

此插件**不提供任何保证**。但是它是免费和开源的。所以,让我们一起让它变得更好!

支持的版本

这已从版本3.8.1进行测试,并应与最新稳定版兼容。

谢谢!

此插件基于Ben Evans在https://github.com/nebev/piwik-cli-setup所做的工作,并且也重新使用了Matomo核心中的代码。

测试

如何运行测试。

PHPstan

docker-compose exec matomo bash -c "/var/www/html/plugins/ExtraTools/vendor/bin/phpstan analyze -c /var/www/html/plugins/ExtraTools/tests/phpstan.neon  --level=0 plugins/ExtraTools/"

Phpunit

docker-compose up -d
docker-compose exec --user=root matomo bash -c  "cd plugins/ExtraTools && composer install --no-interaction --no-progress"
docker-compose exec matomo ./console matomo:install --install-file=/var/www/html/config/install.json --force
docker-compose exec matomo ./console site:add --name=Foo --urls=https://foo.bar
docker-compose exec matomo touch /var/www/html/.gitmodules
docker-compose exec matomo ./console development:enable
docker-compose exec matomo ./console config:set --section=tests --key=http_host --value=web
docker-compose exec matomo ./console config:set --section=tests --key=request_uri --value=/
docker-compose exec matomo ./console config:set --section=database_tests --key=host --value=db
docker-compose exec matomo ./console config:set --section=database_tests --key=username --value=root
docker-compose exec matomo ./console config:set --section=database_tests --key=password --value=root
docker-compose exec matomo ./console config:set --section=database_tests --key=dbname --value=matomo_test
docker-compose exec matomo ./console config:set --section=database_tests --key=tables_prefix --value=""
docker-compose exec matomo /var/www/html/plugins/ExtraTools/vendor/bin/phpunit -c plugins/ExtraTools/tests/phpunit.xml --coverage-text --testdox --log-junit report.xml