终于花了些时间把Piwik 2.16.3升级到了Matomo 4.8.0,本来是不想升级的,但是不知道什么原因某天整个web系统崩溃了,找不到原因,最后想着升级系统应该就好了,果然升级了系统之后,web系统就恢复了,但是问题是piwik就出现了问题,整个piwik的界面都无法使用。猜测是因为php随着系统升级到了7.4导致piwik出错,随之而来的只有一个办法,就是升级piwik,但是由于已经很多年没有升级过piwik,导致跨的版本太大,预计到会出现各种问题,一直没有下决心升级。最近也不能出门,遂终于还是准备升级到最新版。
准备
官方文档:https://matomo.org/faq/on-premise/update-matomo/#the-manual-three-step-update
备份
- 备份数据库
- 备份目录文件
数据库非常的大,已经达到了900M,目录直接备份到了另外一台服务器,由于偷懒直接用ftp拷贝,用时一天多,应该用scp会快很多。
更新目录文件
从官方下载最新matomo:https://builds.matomo.org/matomo.zip
使用最新文件覆盖piwik的目录
安装更新
接着进入URL,毫无疑问的报了500
通过 tail -f tail -f /var/log/apache2/error.log跟踪发现是php报错
1 |
PHP Fatal error: Access level to Piwik\\Plugins\\VisitTime\\Columns\\ServerTime::configureSegments() must be public (as in class Piwik\\Columns\\Dimension) in /var/www/piwik/plugins/VisitTime/Columns/ServerTime.php on line 19 |
网上找了一圈,发现一个解决办法,就是把这个出错的ServerTime.php文件给删除或者重命名,果然解决了,接着出现了更多的Fatal error
1 |
PHP Fatal error: Access level to Piwik\\Plugins\\VisitorInterest\\Columns\\VisitsByDaysSinceLastVisit::configureSegments() must be public (as in class Piwik\\Columns\\Dimension) in /var/www/piwik/plugins/VisitorInterest/Columns/VisitsByDaysSinceLastVisit.php on line 23 |
继续把对应的php重命名,ok可以进入web升级页面了
根据web页面提示通过cli运行升级命令
1 |
php /var/www/dev.minirplus.com/piwik/console core:update |
毫无疑问的,出现了更多的错误,
1 |
Executing ./console plugin:uninstall "CustomVariables"... PHP Fatal error: Access level to Piwik\Plugins\CustomVariables\Columns\CustomVariableName::configureSegments() must be public (as in class Piwik\Columns\Dimension) in /var/www/piwik/plugins/CustomVariables/Columns/CustomVariableName.php on line 15 |
继续重命名报错的php文件,再次运行cli升级命令,继续出现错误
1 |
Executing ./console plugin:uninstall "ExampleTracker"... PHP Fatal error: Access level to Piwik\Plugins\ExampleTracker\Columns\ExampleVisitDimension::configureSegments() must be public (as in class Piwik\Columns\Dimension) in /var/www/piwik/plugins/ExampleTracker/Columns/ExampleVisitDimension.php on line 57 |
继续重命名报错的php文件,再次运行cli升级命令,ok这次终于完成了
进入matomo
毫无疑问的,在首页的Visits in Real-time出现了一个大大的报错信息
1 |
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'log_link_visit_action.pageview_position' in 'field list' |
查询发现,是因为数据库缺少字段,但是升级的时候难道没有完成数据库升级么,又在网上找了一圈,找到一个手动方法
1 |
alter table piwik_log_link_visit_action add pageview_position MEDIUMINT UNSIGNED DEFAULT NULL; |
手动登陆数据库执行,果然好使
差不多终于解决了所有的界面报错问题,发现没有任何新数据,一看日志,又是报错
1 |
Error in Matomo (tracker): Error query: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'config_director' in 'field list' |
网上找了一大圈,确定应该是某个插件引起的,实在没办法,把plugin目录整个删除,然后重新从matomo的包里上传,果然报错没有了
然后provide插件居然显示已过期,这可是直接从最新的matomo包里上传的。。。还不能直接升级,只能卸载后,再进入插件商店然后重新安装。
果然,上传plugin目录后,又出现权限问题
1 2 |
chown -R www-data:www-data /var/www/piwik chmod -R 755 /var/www/piwik |
差不多终于解决了所有的界面报错问题,期间还导致了好几次数据库内存溢出。
不过幸好数据都在
看了下统计,发现最近几年确实网页的访问量在逐步减少,转折点正是抖音和直播开始爆发的时期,毕竟大家大量的时间都花在了短视频上,没有人再去刷网页了。
There are no comments yet