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,永久關閉,但是得重啟服務!


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM