搭建matomo环境搭建,建立网站统计分析站点

    Matomo是一个前端页面的用户行为统计工具,是用PHP语言实现的。作为一个Java开发,搭建PHP环境已经死去了好多脑细胞。为此,在这边做一个记录,也分享给大家。       Matomo官网:https://matomo.org/

 一、需要:

  1、Nginx:1.6.1
  2、PHP:7.1
  3、mysql:5.7.25

  4、Matomo,国外网站下载要是太慢我这边,这边提供一个百度网盘:

    链接:https://pan.baidu.com/s/1Q2EtGcC2Qg2kIUrM9sGZAw
    提取码:ldm5 

  5、Centos7操作系统

  上面nginx、mysql安装我这边就不说了,着重记录让我头疼的PHP和nginx配置。

二、PHP安装

  1、将yum仓库包升级更换成PHP7的rpm包:

    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

  2、查看版本信息
    sudo yum search php71w


  3、安装php以及扩展

    sudo yum install php71w php71w-fpm php71w-cli php71w-common php71w-devel php71w-gd php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath

  4、开启服务
    ①、sudo service php-fpm start(不过这种启动方式会有权限问题)

    ②、sudo php-fpm -R

  以上就是PHP环境搭建,讲真,我真不知道上面干了些什么事情。按步骤就好了。然后还有最重要的一点是要修改php-fpm服务为Matomo拥有者,比如我的nginx的user和Matomo的所有者都是admin。这个让我在权限这边耗时不少,操作如下:(记得要重启php-fpm服务)

    sudo vim /etc/php-fpm.d/www.conf

      

  三、Nginx配置访问php
    其实这个在nginx默认的配置文件中就有,不过被注释了而已:

    

    如果打开注释就可用正常访问php文件那就太棒了,然而我的并不行,而且我部署了一个测试环境,一个正式环境,两个配置都不一样!!!!

     FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,报的都是它。
    于是面向百度开发:

    一种解决方案:

    将以上配置中

      fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

    改为:

      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    据说是因为设置了在location中设置了root的原因,这个配置解决了我生产上的问题。

    第二种方案:

      在这个location中最后一行增加:

      include        fastcgi.conf;

    这个解决了测试环境上的问题。(可能是因为nginx小版本的问题,或者是nginx源不一样,有的nginx有fastcgi.conf这个文件,有的没有)

    重启nginx,访问root上的php应该就可以了,
    其余配置就是访问matomo的静态文件,在生产上我直接配置:

    location / {

      root    /home/admin/matomo

    }

    因为没人公用nginx,所以肆无忌惮。(将Matomo的所有文件放到了matomo下)

    zai测试环境上多人使用,么得法子,只好一个一个配置
     

    location ~ (\.md|piwik\.js|matomo\.js|console|LEGALNOTICE|LICENSE)$ {
      root /home/admin/matomo;
    }


    location ^~ /plugins/ {
      root /home/admin/matomo;
    }

    location ^~ /config/ {
      root /home/admin/matomo;
    }
    location ^~ /core/ {
      root /home/admin/matomo;
    }
    location ^~ /js/ {
      root /home/admin/matomo;
    }
    location ^~ /lang/ {
      root /home/admin/matomo;
    }
    location ^~ /libs/ {
      root /home/admin/matomo;
    }
    location ^~ /misc/ {
      root /home/admin/matomo;
    }
    location ^~ /tests/ {
      root /home/admin/matomo;
    }
    location ^~ /tmp/ {
      root /home/admin/matomo;
    }
    location ^~ /vendor/ {
      root /home/admin/matomo;
    }

  最后就是配置文件中的user设置成对应的用户,比如我设置为amdin,如果是nobody会有没权限访问。测试环境因为是共用所以设置成root,但也出现问题:nginx下载静态文件的时候会建立缓存,至于这个缓存文件的归属与哪个用户不一定,我用admin的时候出现权限问题,后来发现有的时候缓存归属于root有的时候归属于admin,出现没权限访问。

  至此nginx配置完成,顺利的话就可以看到首次登录时的配置界面

三、配置Matomo:

   首次配置需要配置数据,先在mysql中建一个Matomo使用的数据库。(这边没有截图,但是很简单,按照提示就可以完成了)

总结:1、不熟悉php让我最是烧心。
   2、linux的权限问题也是和重要,在生产上配置的时候php文件正常访问,静态文件死活访问不了,后来发现生产上SELinux设置为开启状态(enabled)的原因。
    查看当前selinux的状态:

    ①、/usr/sbin/sestatus,②、getenforce 
    解决方案

    ①、setenforce 0,关闭selinux,这种临时关闭,服务器重启后失效

    ②、vim /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,永久关闭,但是得重启服务器。

   3、领导说Matomo有的内容他不需要,有需要的没有,让我去改PHP源码,我尼玛!


 

猜你喜欢

转载自www.cnblogs.com/lwxiao/p/12466370.html