06 August 2015

本文章是我同事整理安装文档,觉得有用分享出来。Piwik是一个PHP和MySQL的开放源代码的Web统计软件. 它给你一些关于你的网站的实用统计报告,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词等等… Piwik拥有众多不同功能的插件,你可以添加新的功能或是移除你不需要的功能,Piwik同样可以安装在你的服务器上面,数据就保存在你自己的服务器上面。你可以非常容易的插入统计图表到你的博客或是网站抑或是后台的控制面板中。安装完成后,你只需将一小段代码放到将要统计的网页中即可。

准备工作

安装前准备: piwik依赖 PHP,以及web服务apache-httpd(或Nginx)

      初始化安装目录:
          `mkdir /opt/piwik/apache2`
          `mkdir /opt/piwik/php5` ##1.安装apache-httpd 1. 解压已下载的 httpd-**.tar.gz2 2. 进入解压后目录,执行 `./configure --prefix=/opt/piwik/apache2 --enable-module=shared` 配置安装目录并且启用动态脚本支持php 3. 执行`make` 4. 执行`make install` 5. 安装问题:第2步如果出现 `checking for APR... no  configure: error: APR not found.  Please read the documentation.` 错误,
  
      安装apr和apr-util
      初始化安装目录:
      `mkdir /opt/piwik/apr`
      `mkdir /opt/piwik/apr-util`
      解压,进入解压目录,执行`./configure --prefix=/opt/apr`  配置安装目录
      执行`make & make install` 安装
      安装apr-util参照安装apr方法
      安装完apr和apr-util后继续第2步,但执行`./configure --prefix=/opt/piwik/apache2 --enable-module=shared --with-apr=/opt/piwik/apr --with-apr-util=/opt/piwik/apr-util` 然后继续执行第3步 6. 修改配置:打开 安装目录下的 conf/httpd.conf 文件

      找到:
          #ServerName www.example.com:80
          修改为: ServerName 127.0.0.1:80或者ServerName localhost:80
      找到:
          `<IfModule dir_module>
          DirectoryIndex index.html
          </IfModule>
          添加:
          <IfModule dir_module>
          DirectoryIndex index.html index.php
          </IfModule>`
      找到:
          AddType  application/x-compress .Z
          AddType application/x-gzip .gz .tgz
          在后面添加:
          AddType application/x-httpd-php .php
          AddType application/x-httpd-php-source .php5 7. 重启apache

    进入a安装目录下的 bin目录 执行 `./apachectl -k restart` 8. 验证apache

    浏览器打开127.0.0.1

##2.安装PHP

  1. 安装(下载php-*.tar.bz2)

      解压
      进入目录执行 
       `./configure --prefix=/opt/piwik/php5  --with-apxs2=/opt/piwik/apache2/bin/apxs --enable-sockets=shared --with-mysql=shared,mysqlnd`
      出现错误:`configure: error: xml2-config not found. Please check your libxml2 installation.`
         运行`yum install libxml2`然后再运行`yum install libxml2-devel`安装完毕后,重新运行上面的`./configure`命令
        或者下载libxml2-git-snapshot.tar.gz 解压编译安装到/opt/piwik/libxml2目录
       `./configure --prefix=/opt/piwik/php5  --with-apxs2=/opt/piwik/apache2/bin/apxs --with-libxml-dir=/opt/piwik/libxml2 --enable-sockets=shared --with-mysql=shared,mysqlnd`
       `make`
       `make install`
    
  2. 配置php

     `cp php.ini-development  /opt/piwik/php5/lib/php.ini`
    
  3. 验证

       重启apache
       在apache的htdocs下建立一个php文件test.php,里面的内容如下:
       `<?php  phpinfo(); ?>`
        然后在浏览器里输入http://127.0.0.1/test.php
    

##3.安装piwik

  1. 将piwik解压到/opt/piwik/apache2/htdocs/ 目录 执行chmod 0777 piwik/tmp 给piwik权限
  2. 浏览器输入http://127.0.0.1/piwik 按提示,开始安装,如果安装中出现缺少插件,参考下面进行安装插件

       安装pdo_mysql插件
       php-5.6.12/ext/pdo_mysql 目录
       /opt/piwik/php5/bin/phpize
       ./configure --with-php-config=/opt/piwik/php5/bin/php-config --with-pdo-mysql
       make
       make install
       修改/opt/piwik/php5/lib/php.ini 文件
       extension=pdo_mysql.so 
       安装zlib插件
       php-5.6.12/ext/zlib 目录
       mv config0.m4 config.m4
       /opt/piwik/php5/bin/phpize
       ./configure --with-php-config=/opt/piwik/php5/bin/php-config
       make
       make install
       修改/opt/piwik/php5/lib/php.ini 文件
       extension=zlib.so 
       安装mbstring插件
       /opt/piwik/php5/bin/phpize
       ./configure --with-php-config=/opt/piwik/php5/bin/php-config
       make
       make install
       修改/opt/piwik/php5/lib/php.ini 文件
       extension=mbstring.so 
    
  3. 创建数据库用户

       进入mysql
       create database piwik;
       grant all privileges on piwik.* to piwik@'localhost' identified by 'piwik';
       flush privileges;
    
  4. 添加piwik超级用户
  5. 项目中使用piwik

       管理里面添加网站,生产js脚步,拷贝到项目中需要统计的每个页面</body>标签之后
       给事件添加统计  第一个不用动,第二个参数事件名,第三个参数事件别名,第四个事件值,第一第二参数必须
       <a href="#" onclick="javascript:_paq.push(['trackEvent', 'click', '菜单点击', '企业菜单']);">Freedom page</a>
       添加搜索统计
       _paq.push(['trackSiteSearch', keywords, type, countResult]);
       设置用户id
       _paq.push(['setUserId', userLoginName]);
    




Fork me on GitHub