3. Piwik 功能配置

最后更新于:2022-04-02 07:42:17

#### Piwik中文设置 ```shell 个人-->设置-->Language ``` #### Piwik用户来源配置(位置分析、实时地图) 1. Piwik默认只支持GeoIP的数据库,有免费版本 2. 未调整好地图前,如果产生的访问进行了归档处理,将汇总不正确的数据 [下载地址:GeoLite City](http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz "GeoLite City") >这里有个地方需要注意一下,官方推荐GeoIP(PRCL),或GeoIP(PHP) ##### 如何判断地图生效? ```shell 选择地图时有坐标、位置信息产生,只显示位置有可能你上传的地图是国家级地图 我目前遇到一个问题,就是GeoIP(PRCL)地图不显示坐标,我现在在用GeoIP(PHP)方式 ``` ##### GeoIP(PHP)部署 下载GeoLite City文件,上传到/data/piwik/misc/下即可 ##### GeoIP(PRCL) 安装依赖GeoIP模块 ```shell yum install GeoIP-devel.x86_64 GeoIP.x86_64 re2c ``` 安装PHP的geoip模块(PHP 7.x版本,请使用1.1.1版本) ```shell cd /opt/ tar xzf geoip-1.1.1.tgz cd geoip-1.1.1 phpize ./configure --with-php-config=/usr/local/php7.1/bin/php-config --with-geoip make make install ``` 增加扩展参数,并重启php-fpm ```shell extension_dir = "/usr/local/php7.1/lib/php/extensions/no-debug-non-zts-20160303/" extension=geoip.so geoip.custom_directory= "/data/piwik/misc" ``` 注意修改文件名 ```shell cd /data/piwik/misc cp GeoLiteCity.dat GeoIPCity.dat ``` #### Piwik报告通过邮件发送 1. 需要php-gd模块绘图(PDF和HTML) 1. 文件名乱码 PHP需要增加libiconv组件 2. 内容乱码 需要下载字符集(https://piwik.org/faq/how-to-install/faq_142/) ```shell 系统-->通用设施-->邮件服务器设置-->设置邮箱smtp信息 个人-->报表邮件-->选择需要的报告 ``` 备注:CSV里有乱码,PDF和HTML图比较一般,建议二次开发来实现 #### 系统中需要注意的地方 1. 时区/货币(网站-->管理-->编辑站点-->调整货币和时区) #### 替换logo图标 上传图片报不能处理,程序先判断目标文件是否存在,所以会报错,直接将图片上传到指定位置 1.将logo和favicon编辑为png格式 2.将logo.png和favicon.png上传到/data/piwik/misc/user/下 3.自定义图标界面即可看到图片,但logo.png不生效 4.进入/data/piwik/plugins/Morpheus/images 5.将logo-header.png重命名,使用logo.png替换logo-header.png 报告和页面都会使用新图标 #### 常用插件 DBStats(查看数据库使用情况) #### 手动删除访问数据和归档数据 1. 删除日志数据(测试数据,需要清理) ```shell 指定时间范围和站点ID(网站-->管理里查看) ./console core:delete-logs-data --dates=2015-01-01,2019-01-31 --idsite=2 ``` 2. 删除归档数据 直接truncate归档表archive* #### 手动归档 ```shell php console core:archive --url=http://piwik.ding.com/ ``` #### 调整页面嵌入JS,实现数据收集的定制化 ##### 例1:抓取404页面和跳转目录(error页) Piwik:https://piwik.org/faq/how-to/#faq_60 重点:在**!!!404页面!!!**"的JS代码_paq.push(['trackPageView']);"之前增加 ##### 准确衡量用户在每个页面上花费的时间 30秒发一次心跳(主动发请求到Piwik) ```javascript _paq.push(['enableHeartBeatTimer', 30]); ``` https://developer.piwik.org/guides/tracking-javascript-guide#accurately-measure-the-time-spent-on-each-page
';