Docker容器部署Matomo

⭐️主要步骤:数据卷挂载 -->  创建MySQL容器 -->  创建一个带有环境变量设置的Matomo容器

docker volume create matomo_data

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123 mysql:latest

docker run -d --name matomo -p 8093:80 -v matomo_data:/data --link mysql -e MATOMO_DATABASE_USER=root -e MATOMO_DATABASE_PASSWORD=123 matomo

🦀️实际上只需要在命令行运行以上这3个命令就够了,下面是每个部分的详细解释:

🦕部署Matomo容器需要进行以下配置:

1. 端口映射:您需要将容器内部的80端口映射到主机上的一个端口,以便从Web浏览器中访问Matomo。可以使用以下命令将容器的80端口映射到主机的8093端口:

docker run -d --name matomo -p 8093:80 matomo

2. 数据卷挂载:Matomo需要存储分析数据和配置信息。您可以通过创建一个数据卷来挂载到容器中,以便将数据保存在主机上。可以使用以下命令创建一个数据卷:

docker volume create matomo_data

然后,在创建容器时,可以将数据卷挂载到容器的/data目录中:

docker run -d --name matomo -p 8093:80 -v matomo_data:/data matomo

3. 数据库配置:Matomo需要连接到一个数据库来存储分析数据。您可以使用MySQL或MariaDB等关系型数据库。创建MySQL容器时,您需要指定MySQL root用户的密码,可以使用以下命令创建一个MySQL容器:

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123 mysql:latest

然后,在创建Matomo容器时,可以使用`--link`参数将Matomo容器连接到MySQL容器:

docker run -d --name matomo -p 8093:80 -v matomo_data:/data --link mysql matomo

4. 环境变量设置:您可以设置一些环境变量来配置Matomo容器的行为。例如,您可以使用`MATOMO_DATABASE_USER`和`MATOMO_DATABASE_PASSWORD`这2个环境变量,来指定连接到MySQL数据库所需的用户名和密码。您可以使用以下命令来创建一个带有环境变量设置的Matomo容器:

在创建Matomo容器时,您需要使用`--link`参数将Matomo容器连接到MySQL容器,并将`MATOMO_DATABASE_USER`和`MATOMO_DATABASE_PASSWORD`环境变量设置为连接到MySQL所需的用户名和密码。例如,如果您在创建MySQL容器时使用的是`123`作为root用户的密码,您可以使用以下命令创建一个带有环境变量设置的Matomo容器:

docker run -d --name matomo -p 8093:80 -v matomo_data:/data --link mysql -e MATOMO_DATABASE_USER=root -e MATOMO_DATABASE_PASSWORD=123 matomo

在这个命令中,我们将`MATOMO_DATABASE_USER`设置为`root`,因为我们使用的是MySQL的root用户,将`MATOMO_DATABASE_PASSWORD`设置为`123`,这是我们在创建MySQL容器时指定的root密码。

这些是配置Matomo容器所需的一些基本设置。您可以根据需要进行进一步的定制和配置。建议查看Matomo文档以获取更多详细信息。请注意,在生产环境中,您应该避免在命令行中硬编码密码,而应该使用安全的方法来传递和存储密码,例如使用密码文件或Vault等安全工具。

📖我的询问过程:

docker容器部署moatomo --> 为什么我无法访问? ---> Matomo容器需要配置哪些 --->  MATOMO_DATABASE_USER和MATOMO_DATABASE_PASSWORD我该填些什么?

😊访问本地8093端口,就可以看见页面了,如:http://localhost:8093/

❓Matomo要我填数据库服务器,它给了个示意例子:127.0.0.1,请问我该填什么?

当您使用Matomo时,您需要将其配置为连接到您的MySQL数据库服务器。如果您在Docker容器中运行MySQL服务器,则可以使用该容器的IP地址作为Matomo的数据库服务器。

在Docker容器中,每个容器都有自己的IP地址。如果您使用的是默认的Docker网络模式,则可以使用MySQL容器的名称作为其主机名(Hostname)。例如,如果您在创建MySQL容器时使用的名称是mysql,则可以在Matomo的配置中将其数据库服务器配置为mysql

如果您需要将Matomo连接到不同的Docker网络中的MySQL容器,则需要使用相应的Docker网络名称和容器名称来设置数据库服务器。例如,如果您将MySQL容器连接到名为my_network的Docker网络中,并使用名称mysql来创建MySQL容器,则可以在Matomo的配置中将其数据库服务器配置为mysql.my_network

如果您要连接到不在Docker中运行的MySQL服务器,则需要使用该服务器的IP地址或主机名来设置数据库服务器。如果您的MySQL服务器在本地主机上运行,则可以使用127.0.0.1localhost作为数据库服务器。但是,请注意,如果您的MySQL服务器在另一台机器上运行,则需要使用该机器的IP地址或主机名来设置数据库服务器。

--数据库设置
数据库服务器:
mysql
账号:
root
密码:
123
数据库名称:
matomo
数据库前缀:
matomo_
适配器:
PDO\MYSQL

🤔️使用matomo的时候产生异常

⚠️由于我是用docker拉的matomo镜像资源,并且在上面部署的matomo容器,而不是从官网拉下来的matomo包,所以我要到docker中matomo容器的config文件夹里去改config.ini.php这个文件。如果是去从官网拉下来的包的话,去解压缩之后的matomo包里找config文件夹下config.ini.php这个文件去修改就好了。当然了,你在通过命令进入matomo容器之后也可以用ls命令罗列出matomo容器下的所有文件进行查看。如下所示:

🔢具体解决步骤:

1、查看matomo在容器上的名称NAMES,在终端运行以下命令可以列出所有正在运行的容器

docker ps

可以看到,我的IMAGE为matomo的NAMES为matomo

 2、进入matomo容器,把下面的matomo_name换成你的matomo在容器上的名称NAMES

docker exec -it matomo_name bash

我的就是matomo,那我就要输入:

docker exec -it matomo bash

3、再在matomo容器里,查找Matomo配置文件的默认路径。通常情况下,Matomo配置文件位于容器内的/var/www/html/config/config.ini.php路径下。您可以通过以下命令在容器内部运行下列命令,查看该文件:

cat /var/www/html/config/config.ini.php

4、在docker内安装vim编辑器,以方便修改config.ini.php文件,如果你已经有vi、vim或者nano了,那你就不用再安装了。执行以下命令,更新一下apt-get,并且安装vim

apt-get update && apt-get install vim

⚠️如果下载不动或者老是失败的话,可以将默认软件源换成清华大学的镜像源,在终端里输入

sed -i 's/http:\/\/deb.debian.org\/debian/https:\/\/mirrors.tuna.tsinghua.edu.cn\/debian/g' /etc/apt/sources.list

PS:也可以先执行update然后再执行install

5、进入config.ini.php文件

vim /var/www/html/config/config.ini.php

6、按照异常的提示,在config.ini.php文件里添加下行

...

[General]
trusted_hosts[] = "localhost:8093"
...

7、最后按ESC键,:wq保存退出,回到matomo的页面刷新就好了!

 ⌚️后续

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值