[Tuto/HowTo] Piwik alternative libre au tracker Google Analytic

Tracking web, logs, applications etc (par exemple piwik)
Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

[Tuto/HowTo] Piwik alternative libre au tracker Google Analytic

Message par voxdemonix » jeu. sept. 08, 2016 3:02 pm

[_lolycat_] [_lolycat_] [_lolycat_]
musque d'entrain : Major Lazer - Light It Up (Feat. NYLA & Fuse ODG) (YP Remix)
Testé sur : Ubuntu 16.04 (Xenial Xerus), Raspbian 8 (Jessie)
Note : un grand pouvoir implique de grandes responsabilités ! N'abusez ni du tracking, ni des informations collectées [_Sith1_]

Piwik, alternative au tracker Google Analytic
Introduction :
  • Piwik est une alternatives libre (_ [GPLV3] _) et gratuite à Google Analytic. Il permet de récolter des informations à propos des visiteurs d'un ou plusieurs sites web afin de faire des statistiques. Vous saurez ainsi quelles sont, entre autre, les technologies favorites de vos utilisateurs, la géolocalisation approximative, le nombre de visiteurs, le temps qu'ils passent sur vos pages etc.
    Petit bug étrange, les styles de l'interface ne fonctionnent pas en réseau local si adblock est activé. Par contre via internet, avec ou sans adblock les styles sont bien chargé.
    Piwik est doté d'une application pour mobile (smartphone/tablette) et d'un widget pour android.
    Dans ce tuto je pars du principe que vous avez déjà installé un serveur web (apache2, Nginx, etc) et un serveur de base de données (wikipedia).

    Note : si vous vous en servez dans un cadre professionnel, ne soyez pas égoïste: participez à l'évolution des logiciels libres que vous utilisez en faisant des retours sous formes de code, de débug et/ou d'argent.
    [_gris2_] [_alienOuups2_] Attention : des pirates et des spams peuvent placer leur merde dans certains liens affichés sur votre interface, comme par exemple les pages visitées ou les les sites web référants (voir ici)). Évitez donc de cliquer à tout va surtout si vous trackez les fichiers log. En théorie ils peuvent aussi truquer l'adresse IP.

    Avis de Voxdemonix :
    • On peut créer plusieurs utilisateurs, mais piwik nous force a leur définir une adresse mail (...).
      Le Dashboard permet d'afficher des widgets, on peut les déplacer (via glissé-déposé), en ajouter/retirer. La plus part des infos sont exportables dans divers formats et affichable en tableau, graphique et autres. C'est assez bien foutu. Par contre j'ai l'impression (en regardant l'activité sur le forum) que Piwik loupe beaucoup de visiteurs (note: c'est peut-être car je respecte Do Not Track).
      Après avoir voulu installer et tester le thème "Proteus_Bold", le panneau d'administration devint inaccessible. Pour le retrouver j'ai du supprimer le dossier et son contenu dans "plugins" => "Proteus_Bold".
      La carte interactive dans Visiteurs => Cartes en temps réelle ne semble pas fonctionner, c'est dommage.
Farm Link : Installation du serveur Piwik
  1. Mettez à jours la liste des paquets
  2. Installez les pré-requis :
    • PHP 7
      • Code : Tout sélectionner

        sudo apt-get install apache2 php7.0 php7.0-curl php7.0-gd php7.0-cli mariadb-server php7.0-mysql openssl php7.0-mbstring libapache2-mod-php7.0 php-geoip php-xml
      PHP 5 (déprécié)
      • Code : Tout sélectionner

        sudo apt-get install apache2 php5 php5-curl php5-gd php5-cli mariadb-server php5-mysql openssl libapache2-mod-php5 php5-geoip
  3. Téléchargez Piwik cette adresse
  4. Déplacez le vers le dossier de votre serveur web
    • Code : Tout sélectionner

      sudo mv piwik /var/www/html/
      • Cette commande va déplacer piwik dans /var/www/html/piwik/ Adaptez /var/www/html/ si vous souhaitez le positionner ailleurs.
  5. Accordez le bons propriétaires aux dossiers
  6. Créez une base de données dédiée
  7. Rendez-vous à l'adresse de piwik : https://votreServer/piwik
  8. Entrez vos infos sur la base de données créée précédemment
  9. Créez votre compte administrateur (/!\ utilisez un password fort !)
  10. À la fin de l'install, Piwic vous propose de déjà ajouter votre premier site. Remplissez les infos demandées (nom de domaine, nom du site)
  11. Rendez-vous dans Paramètres => Diagnostic => Vérification du système et vérifier que tout est correct.

Dés-Installation/Suppression du serveur Piwik
  1. Supprimez les fichiers
    • Code : Tout sélectionner

      sudo rm -R /var/www/html/piwik
      • Adaptez /var/www/html/piwik à votre configuration.
  2. Supprimez la base de données et son utilisateur
  3. C'est fini!

Infos et Astuces :
  • Si vous utilisez un reverse proxy apache2 (http) entre votre serveur piwik et vos visiteurs :
    • L'adresse IP des visiteurs sera remplacée par l'adresse IP de votre serveur proxy.
    Piwik et certificat TLS (https) auto-signé :
    • SI vous utilisez un certificat auto-signé différent de votre certificat principale, l'image générée par la sonde sera inaccessible en https tant que vos utilisateurs n'auront pas accepté le certificat lié a l'url de votre serveur piwik. Hors pour l'accepter il faudrait que vos visiteurs prennent la peine de visiter votre serveur piwik directement se qui n'a strictement AUCUNE chance d'arriver. Si vous voulez absolument utiliser un certificat auto-signé, utilisez le même que les sites qui sont sous la surveillance de votre serveur piwik ou utiliser un reverse proxy apache2.
      PS: je rappel que la seule différence entre un certificat TLS auto-signé et un "trust", c'est que le "trust" a été signé par une entreprise faillible aux états/bourses/etc. Qu'en cas de MITM avec un certificat signé vos visiteurs n'auront PAS d'alerte de sécurité.
    Peut-on charger la sonde Piwik via http (sans TLS) :
    • Oui mais c'est fortement déconseillé. En http (sans "s"), un attaquant en MITM entre votre visiteur et vous peut injecter très facilement une autre image ou intercepter et modifier à la volée des données échangées entre la sonde javascript et le serveur piwik.
      Notez aussi que firefox (et peut-être aussi les autres merdes comme safari et chrome), bloque le contenu http sur les sites en https.
      screenshot-11_09_2016-Firefox_Censure_sonde_Piwik_http_sur_site_https.png
    Piwik détecte-t-il les nœud de sortie (Exit Node) Tor ? Piwik permet-il aux visiteurs de ne pas être tracké/pisté ? erreur 400 Bad Request "missing token 'user-agent' in CORS header 'Access-Control-Allow-Headers' from CORS preflight channel" Piwik et AdBlock
    • La liste EasyPrivacy qui, si je ne m'abuse, est activée par défaut lorsque vous installez adblock et cochez "bloquer les trackers", bloque les sondes piwik (il y a au moins 10 regex anti-piwik)
    J'arrive a joindre mes sondes piwik mais aucune visite/vue ne semble ajoutée dans piwik
    • J'ai résolu en désactivant puis ré-activant l'extension Paramètres => Plugins => IntranetGeoIP
    Liste de quelques plugins additionnels intéressant : Piwik est-il intégrable à d'autres CMS : Obfuscation :
    • Créez deux liens symboliques pointant respectivement vers votre piwik.php et piwik.js et donner leur un nom inconnu du software comme dans l'exemple suivant. On part du principe que piwik se trouve dans /var/www/html/services/piwik/ et les liens symboliques se trouveront dans /var/www/html/services/
      • Code : Tout sélectionner

        sudo su
        cd /var/www/html/services/
        ln -s ./piwik/piwik.php bigbrother.php
        ln -s ./piwik/piwik.js bigbrother.js
        chown www-data -R ./bigbrother.*
        
      Ensuite adaptez la sonde suivante :
      • Code : Tout sélectionner

        <!-- Piwik -->
        
        <script type="text/javascript">
        var u="https://www.orion.netlib.re:8443/services/"; //WAN url
        if (RegExp("192.168\.[0-9]{0,3}\.[0-9]{0,3}", "i").test(location.hostname)){
          u="https://192.168.1.42/services/";
        }else if(RegExp("[0-9a-z]{16}\.onion", "i").test(location.hostname)){
          //u="https://myPiwikOnionService.onion/services/";
        }else{
          //wan
        }
        
        
          var _paq = _paq || [];
          _paq.push(['trackPageView']);
          _paq.push(['enableLinkTracking']);
          (function($u) {
           /* var u="//www.orion.netlib.re/services/piwik/";  */
            _paq.push(['setTrackerUrl', u+'bigbrother.php']);
            _paq.push(['setSiteId', '2']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'bigbrother.js'; s.parentNode.insertBefore(g,s); /*  bigbrother.js = piwik.js */
          })();
        </script>
        
        <noscript><p><img src="https://www.orion.netlib.re:8443/services/bigbrother.php?idsite=2" style="border:0;" alt="" /></p></noscript>
        <!-- End Piwik Code -->
        • Remplacez bigbrother.php et bigbrother.js par les liens symboliques que vous avez créé et au lieu d'indiquer l'url de votre piwik, indiquez l'url de vos liens symboliques
    Reset un site / vider complètement les logs d'un site :
    • Code : Tout sélectionner

      DELETE FROM `piwik_log_visit`, `piwik_archive_numeric_YEARS_MONTH`, `piwik_archive_blob_YEARS_MONTH` WHERE idsite = X 

Screenshot
  • screenshot-09_09_2016_Piwic_Dashbord_via_localFrontend.png
    screenshot-08_09_2016_Piwic_UserRecaptulatif.png
    screenshot-08_09_2016_Piwic_typePeripherique.png
    screenshot_23-10-2016_Piwik_DetectionApprentisPirate.png
    screenshot-2016_01_14-piwik-probleme_integrite_fichier.png
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par voxdemonix le mar. mai 02, 2017 3:36 pm, modifié 41 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] Piwik - Ajouter la sonde Piwik sur une page web

Message par voxdemonix » ven. sept. 09, 2016 12:20 am

Ajouter la sonde Piwik sur une page web
  1. Récupérez le numéro d'identifiant piwik de votre site ( Paramètres => Administration => Sites Web )
  2. Ajoutez le code d'une des sondes suivantes n'importe où sur votre page web entre les balises <body> et </body>

Sonde simple Javascript
  • Code : Tout sélectionner

    <!-- Piwik -->
    <script type="text/javascript">
      var _paq = _paq || [];
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var u="//www.orion.netlib.re/services/piwik/";
        _paq.push(['setTrackerUrl', u+'piwik.php']);
        _paq.push(['setSiteId', '1']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    <noscript><p><img src="//www.orion.netlib.re/services/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
    

Sonde multi hostname compatible Lan/Wan/Tor en Javascript
  • Code : Tout sélectionner

    <!-- Piwik -->
    
    <script type="text/javascript">
    	var u="https://www.orion.netlib.re:8443/services/piwik/"; //WAN url
    
    if (RegExp("192.168\.[0-9]{0,3}\.[0-9]{0,3}", "i").test(location.hostname)){ 
      	u="https://piwikLocalIPOrHostname/services/piwik/"; //LAN url
    }else if(RegExp("[0-9a-z]{16}\.onion", "i").test(location.hostname)){
      	u="https://myPiwikOnionService.onion/services/piwik/"; //TOR url
    }else{
      //wan
    }
    
      var _paq = _paq || [];
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function($u) {
       /* var u="//www.orion.netlib.re/services/piwik/";  */
        _paq.push(['setTrackerUrl', u+'piwik.php']);
        _paq.push(['setSiteId', '2']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    
    <noscript><p><img src="https://www.orion.netlib.re:8443/services/piwik/piwik.php?idsite=2" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
    Note pour Voxdemonix : la regex "[0-9a-z]{16}\.onion" n'est pas "propre", il faut lui ajouter la vérification de http(s):// avant l'adresse .onion
Sonde simple en PHP/Javascript
  • Code : Tout sélectionner

    <!-- Piwik -->
    
    <?php    $urlServerPiwik =  "www.orion.netlib.re/services/piwik/";   
    $idWebsitePiwik = "1"; // identifiant de votre website pour Piwik 
    ?>
    
    <script type="text/javascript">
      var _paq = _paq || [];
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var u="//<?php echo $urlServerPiwik; ?>";
        _paq.push(['setTrackerUrl', u+'piwik.php']);
        _paq.push(['setSiteId', '<?php echo $idWebsitePiwik; ?>']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    <noscript><p><img src="//<?php echo $urlServerPiwik.'piwik.php?idsite='.$idWebsitePiwik; ?>" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
    
    • Note : Éditez la variable $urlServerPiwik pour placer l'url de votre serveur Piwik. Vous devez aussi indiquer à la variable $idWebsitePiwik quel est le numéro identifiant votre website pour Piwik et éditer la variable $urlServerPiwik afin qu'elle corresponde à l'url de votre serveur piwik (là par défaut multipleUrlDeVotreSite/services/piwik/)

Sonde piwik multi hostname compatible réseau Lan|Wan|Tor en PHP/Javascript
  • Code : Tout sélectionner

    <!-- Piwik -->
    <?php
            /*   liste des hostnames possible (sécurité anti xss (on ne peut pas direct injecter $_SERVER['HTTP_HOST']) si non faille) */
      $validHostnameList = array( 
                                  "wan"=>array('tracker.0rion.netlib.re', 'tracker.orion.netlib.re'),
                                  "lan"=>'192.168.1.42',
                                  "tor"=>'hnokrjnlzme4v5yv.onion',
                    );
      $idWebsitePiwik = "1"; // identifiant de votre website pour Piwik
    
      $randomHostnameInListActivate = false; // si vous voulez choisir un hosntame WAN aleatoire dans votre liste d'hostname wan valide
      $frontendLocalIP = array("192.168.1.666"); //Les connexions via ces IP ne sont PAS considérées comme locales car ce sont les ip de vos proxy
    
      $port = array( "lan"=>array("protocol"=>"http", "port"=>"80"),"wan"=>array("protocol"=>"http", "port"=>"555"), "tor"=>array("protocol"=>"http", "port"=>"80"));
      $urlServerPiwik =  recoverPiwikServerHostname($validHostnameList, "tracker.0rion.netlib.re", $_SERVER['HTTP_HOST'], $randomHostnameInListActivate, $port)."/services/piwik/"; ?>
    
    <script type="text/javascript">
      var _paq = _paq || [];
      _paq.push(['trackPageView']);
      _paq.push(['enableLinkTracking']);
      (function() {
        var u="<?php echo $urlServerPiwik; ?>";
        _paq.push(['setTrackerUrl', u+'piwik.php']);
        _paq.push(['setSiteId', '<?php echo $idWebsitePiwik; ?>']);
        var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
        g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
      })();
    </script>
    <noscript><p><img src="<?php echo $urlServerPiwik.'piwik.php?idsite='.$idWebsitePiwik; ?>" style="border:0;" alt="" /></p></noscript>
    
    <?php
    
    function recoverPiwikServerHostname($validHostnameList, $defaulWantHostname, $hostnameSendByUser, $randomHostnameInListActivate, $port){
      $urlReturn = $defaulWantHostname; // hostname by default if $_SERVER["HTTP_HOST"] is invalid (bot, hack, bug, old link)
    
    
          //on retire l'éventuel port du hostname envoyé par l'user
      $hostnameSendByUser = preg_replace('/:[0-9]{0,}/', '', $hostnameSendByUser);
    
      if (ifTor()){
         
          $urlReturn =  $port["tor"]["protocol"]."://".$validHostnameList["tor"].":".$port["tor"]["port"];
    
      }elseif(ifLocal()){
    
                $urlReturn = $port["lan"]["protocol"]."://".$validHostnameList["lan"].":".$port["lan"]["port"];
    
      }else{
                $urlReturn = $port["wan"]["protocol"]."://".$defaulWantHostname.":".$port["wan"]["port"];
                if ($randomHostnameInListActivate){
                    $urlReturn = $port["wan"]["protocol"]."://".$validHostnameList['wan'][rand(0, count($validHostnameList['wan'])-1)].":".$port["wan"]["port"];
                }
      }
    
        return $urlReturn;
    }
    
    function ifLocal(){
      global $frontendLocalIP;
       if(!filter_has_var(INPUT_SERVER, 'HTTP_HOST') === false & !filter_var ($_SERVER["REMOTE_ADDR"], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE) & !filter_var ($_SERVER["HTTP_HOST"], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE) & !in_array($_SERVER["REMOTE_ADDR"], $frontendLocalIP)){ return true;}else{return false;}
    }
    
    function ifTor(){       if (filter_has_var(INPUT_SERVER, 'HTTP_HOST') &  preg_match ("/(http|https)(:\/\/)([a-zA-Z0-9]{16}|[a-zA-Z0-9]{32}).onion/i", 'http://'.$_SERVER['HTTP_HOST']) && (!filter_var ($_SERVER["REMOTE_ADDR"], FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE))){ return true; }else{ return false;}       }
     
    ?>
    <!-- End Piwik Code -->
    
    • Éditez le tableau $validHostnameList afin d'ajouter vos propres valeurs. Vous pouvez overider les hostname tor et lan pour mettre d'autre valeur pour forcer certains hostname.
      Vous devez aussi indiquer à la variable $idWebsitePiwik quel est le numéro identifiant votre website pour Piwik.
      En Bonus : mettez a true la variable $randomHostnameInListActivate si vous souhaitez que votre sonde choisisse un hostname WAN aléatoire dans la liste de vos hostnames wan valide.
Modifié en dernier par voxdemonix le sam. sept. 10, 2016 4:37 pm, modifié 9 fois.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] Piwik - Ajouter la sonde Piwik sur phpBB3.1

Message par voxdemonix » ven. sept. 09, 2016 12:55 am

Ajouter la sonde Piwik sur phpBB3.1
  1. Récupérez le numéro d'identifiant piwik de votre site ( Paramètres => Administration => Sites Web )
    • screenshot-08_09_2016-Piwik_Recover_Id_of_website.png
  2. Autorisez le php dans les templates phpbb3: Panneau d'Administration => Sécurité => "Autoriser le PHP dans les templates" mettre à oui
  3. Éditez ./styles/prosilver/template/overall_footer.html
  4. Ajoutez avant la balise html "[/body]" le code d'une des sondes founie dans la partie suivante
  5. Purgez le cache de phpbb : Panneau d'administration => Général => Purger le cache => cliquer sur Exécuter
    • Sonde simple en Javascript pour forum phpBB3.1
      • Code : Tout sélectionner

        <!-- Piwik -->
        <script type="text/javascript">
          var _paq = _paq || [];
          _paq.push(['trackPageView']);
          _paq.push(['enableLinkTracking']);
          (function() {
            var u="//www.orion.netlib.re/services/piwik/";
            _paq.push(['setTrackerUrl', u+'piwik.php']);
            _paq.push(['setSiteId', '1']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
          })();
        </script>
        <noscript><p><img src="//www.orion.netlib.re/services/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>
        <!-- End Piwik Code -->

      Sonde simple en PHP/Javascript pour forum phpBB3.1
      • Code : Tout sélectionner

        <!-- Piwik -->
        
        <!-- PHP -->
        	$urlServerPiwik =  filter_input(INPUT_SERVER, 'HTTP_HOST')."/services/piwik/"; 
        	$idWebsitePiwik = "1"; // identifiant de votre website pour Piwik 
        <!-- ENDPHP -->
        
        <script type="text/javascript">
          var _paq = _paq || [];
          _paq.push(['trackPageView']);
          _paq.push(['enableLinkTracking']);
          (function() {
            var u="//<!-- PHP --> echo $urlServerPiwik; <!-- ENDPHP -->";
            _paq.push(['setTrackerUrl', u+'piwik.php']);
            _paq.push(['setSiteId', '<!-- PHP --> echo $idWebsitePiwik; <!-- ENDPHP -->']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
          })();
        </script>
        <noscript><p><img src="//<!-- PHP --> echo $urlServerPiwik; <!-- ENDPHP -->piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>
        <!-- End Piwik Code -->
        
        • Remplissez la variable $idWebsitePiwik par l'identifiant de votre site dans piwik et éditez la variable $urlServerPiwik afin qu'elle corresponde à l'url de votre serveur piwik (là par défaut multipleUrlDeVotreSite/services/piwik/)
      Sonde pour forum phpBB3.1 multi hostname compatible Lan|Wan|Tor avec random possible des wan hostname
      • Not work ! | Ne fonctionne pas !

        Code : Tout sélectionner

        <!-- Piwik -->
        <!-- PHP -->
                /*   liste des hostnames possible (sécurité anti xss (on ne peut pas direct injecter filter_input(INPUT_SERVER, 'HTTP_HOST')) si non faille) */
          $validHostnameList = array( 
                                      "wan"=>array('tracker.0rion.netlib.re', 'tracker.orion.netlib.re'),
                                      "lan"=>'192.168.1.70',
                                      "tor"=>'hnokrjnlzme4v5yv.onion',
                        );
          $idWebsitePiwik = "1"; // identifiant de votre website pour Piwik
        
          $randomHostnameInListActivate = false; // si vous voulez choisir un hosntame WAN aleatoire dans votre liste d'hostname wan valide
          $frontendLocalIP = array("192.168.1.65"); //Les connexions via ces IP ne sont PAS considérées comme locales car ce sont les ip de vos proxy
        
          $port = array( "lan"=>array("protocol"=>"http", "port"=>"80"),"wan"=>array("protocol"=>"http", "port"=>"555"), "tor"=>array("protocol"=>"http", "port"=>"80"));
          $urlServerPiwik =  recoverPiwikServerHostname($validHostnameList, "tracker.0rion.netlib.re", filter_input(INPUT_SERVER, 'HTTP_HOST'), $randomHostnameInListActivate, $port)."/services/piwik/"; <!-- ENDPHP -->
        
        <script type="text/javascript">
          var _paq = _paq || [];
          _paq.push(['trackPageView']);
          _paq.push(['enableLinkTracking']);
          (function() {
            var u="<!-- PHP --> echo $urlServerPiwik; <!-- ENDPHP -->";
            _paq.push(['setTrackerUrl', u+'piwik.php']);
            _paq.push(['setSiteId', '<!-- PHP --> echo $idWebsitePiwik; <!-- ENDPHP -->']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
          })();
        </script>
        <noscript><p><img src="<!-- PHP --> echo $urlServerPiwik.'piwik.php?idsite='.$idWebsitePiwik; <!-- ENDPHP -->" style="border:0;" alt="" /></p></noscript>
        
        <!-- PHP -->
        
        function recoverPiwikServerHostname($validHostnameList, $defaulWantHostname, $hostnameSendByUser, $randomHostnameInListActivate, $port){
          $urlReturn = $defaulWantHostname; // hostname by default if $_SERVER["HTTP_HOST"] is invalid (bot, hack, bug, old link)
        
        
              //on retire l'éventuel port du hostname envoyé par l'user
          $hostnameSendByUser = preg_replace('/:[0-9]{0,}/', '', $hostnameSendByUser);
        
          if (ifTor()){
             
              $urlReturn =  $port["tor"]["protocol"]."://".$validHostnameList["tor"].":".$port["tor"]["port"];
        
          }elseif(ifLocal()){
        
                    $urlReturn = $port["lan"]["protocol"]."://".$validHostnameList["lan"].":".$port["lan"]["port"];
        
          }else{
                    $urlReturn = $port["wan"]["protocol"]."://".$defaulWantHostname.":".$port["wan"]["port"];
                    if ($randomHostnameInListActivate){
                        $urlReturn = $port["wan"]["protocol"]."://".$validHostnameList['wan'][rand(0, count($validHostnameList['wan'])-1)].":".$port["wan"]["port"];
                    }
          }
        
            return $urlReturn;
        }
        
        function ifLocal(){
          global $frontendLocalIP;
           if(!filter_has_var(INPUT_SERVER, 'HTTP_HOST') === false & !filter_var (filter_input(INPUT_SERVER, 'REMOTE_ADDR'), FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE) & !filter_var ($_SERVER["HTTP_HOST"], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE) & !in_array(filter_input(INPUT_SERVER, 'REMOTE_ADDR'), $frontendLocalIP)){ return true;}else{return false;}
        }
        
        function ifTor(){       if (filter_has_var(INPUT_SERVER, 'HTTP_HOST') &  preg_match ("/(http|https)(:\/\/)([a-zA-Z0-9]{16}|[a-zA-Z0-9]{32}).onion/i", 'http://'.filter_input(INPUT_SERVER, 'HTTP_HOST')) && (!filter_var (filter_input(INPUT_SERVER, 'REMOTE_ADDR'), FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE))){ return true; }else{ return false;}       }
         
        <!-- ENDPHP -->
        <!-- End Piwik Code -->
        
        • Éditez le tableau $validHostnameList afin d'ajouter vos propres valeurs. Vous pouvez overider les hostname tor et lan pour mettre d'autre valeur pour forcer certains hostname.
          En Bonus : mettez a true la variable $randomHostnameInListActivate si vous souhaitez que votre sonde choisisse un hostname WAN aléatoire dans la liste de vos hostnames wan valide.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Avatar du membre
voxdemonix
Messages : 1336
Enregistré le : lun. févr. 02, 2015 7:28 pm

Re: [Tuto/HowTo] Piwik gestion des mises à jours / update

Message par voxdemonix » lun. oct. 03, 2016 2:46 pm

Piwik : gestion des mises a jours
  • Rappel : il est très important de tenir à jours son système d'exploitation, ses logiciels et ses CMS afin de prévenir les attaques des script kiddies (les pirates du dimanche qui forment la masse principale des menaces).
Comment savoir s'il y a une mise à jours de disponible ?
  • Elle est affichée sur le Dashboard (voir screenshot) ainsi que dans l'administration (voir screenshot)
    • screenshot_03-10-2016_Piwik_MiseAJoursDisponible_Dashboard.png
      screenshot_03-10-2016_Piwik_MiseAJoursDisponible_Administration.png

Comment faire la mise à jours / Update ?
  1. Placez le curseur de votre souris sur l'annonce de la mise à jours afin de dérouler la bannière.
  2. Ensuite cliquez sur le lien "Merci de mettre à jour!" (qui mène vers URLDeVotrePiwik.be/piwik/index.php?module=CoreUpdater&action=newVersionAvailable )
  3. La page vous propose d'installer automatiquement ou manuellement la mise à jours. Comme vous vous en doutez nous allons choisir "Mettre à jours automatiquement" qui va se charger de l'update des fichiers (téléchargement des nouveaux fichiers et remplacement des anciens)
    • screenshot_03-10-2016_Piwik_MiseAJours1.png
  4. Quelques secondes plus tard (suivant votre machine) cliquez sur "Continuer vers Piwik"
    • screenshot_03-10-2016_Piwik_MiseAJours2_END.png
  5. Maintenant Piwik va faire la mise à jours de sa base de données. Vous pouvez soit le faire depuis le navigateur en cliquant sur "Continuer vers Piwik" soit lancer la commande suivante, après l'avoir adapté a votre config, afin de pratiquer la mise à jours depuis un Shell de commande (se qui est fortement conseillé pour les grosses installation où le temps de traitement pourrait être supérieur au temps de traitement autorisé dans votre php.ini)
    • Code : Tout sélectionner

      sudo php /var/www/html/services/piwik/console core:update
      /var/www/html/services/piwik => l'URI vers votre piwik depuis la racine du système de fichier de votre serveur (à ne pas confondre avec l'URL web)
    • screenshot_03-10-2016_Piwik_MiseAJours3_BDD.png
  6. C'est terminé !
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
~ Infernalis Creatorem ~
  • Rejoins le côté obscure, on a des cookies !
Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Donation Dash : XmowiBRku3tsEREp7PhpheY4TgeLLDyKdM

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité