终于花了些时间把Piwik 2.16.3升级到了Matomo 4.8.0,本来是不想升级的,但是不知道什么原因某天整个web系统崩溃了,找不到原因,最后想着升级系统应该就好了,果然升级了系统之后,web系统就恢复了,但是问题是piwik就出现了问题,整个piwik的界面都无法使用。猜测是因为php随着系统升级到了7.4导致piwik出错,随之而来的只有一个办法,就是升级piwik,但是由于已经很多年没有升级过piwik,导致跨的版本太大,预计到会出现各种问题,一直没有下决心升级。最近也不能出门,遂终于还是准备升级到最新版。
Archive | DEV
php镜像添加数据库支持
官方php镜像不支持连接数据库,试图访问数据库会报错
1 2 3 |
Cannot connect to the database: The mysql driver is not currently installed |
基于官方php镜像添加数据库支持
1 2 3 4 |
FROM php:7.3-apache COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ RUN install-php-extensions mysqli pdo_mysql RUN install-php-extensions @composer |
再次访问出现以下报错信息时,说明已经支持数据库,只是数据库地址错误
1 2 3 |
Cannot connect to the database: SQLSTATE[HY000] [2002] No such file or directory |
预构建镜像: docker pull minirplus/php:7.3-apache
traefik 使用路径访问内部服务
在使用路径访问traefik的dashboard时,不需要进行设置,因为dashboard的内部服务就是基于二级路径。但是当转发的是基于根路径的内部服务时,会出现错误,因为转发时会同时将路径一起转发,这个时候有一个方案就是使用一个中间件,将二级路径转换为根路径。
traefik 通过路径访问dashboard
traefik启动后默认会使用8080端口来监听dashboard访问,为了减少端口的暴露,可以使用80端口+路径来转发dashboard请求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Dynamic Configuration http: routers: dashboard: rule: PathPrefix(`/dashboard`)) service: api@internal middlewares: - auth middlewares: auth: basicAuth: users: - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/" - "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0" |
basicAuth的用户名密码可以通过https://hostingcanada.org/htpasswd-generator/生成
traefik 使用体验
阿里云的数据库服务到期不准备继续用了,准备把数据库迁移到物理机上,考虑灵活性在docker上部署数据库服务,但是发现一个问题,就是在不暴露端口到外网的情况下,官方的mysql镜像似乎没办法监听本地请求,但是container的内部ip从wireguard又没办法访问,遂只能将mysql服务部署成内网服务,所以需要一个方法来解决来自host的访问转发到container的路由问题。