Installare nextcloud: installazione completa in debian 9.xx – versione 13.xx

Di seguito i passi per l’installazione completa di NextCloud su macchina Virtuale debian 9.xx.

Trattandosi di installazione da zero dopo il passaggio a superuser è  opportuno aggiornare il sistema

su
apt update && apt upgrade

Next cloud necessita di un server di tipo  LAMP cioè con installati  Apache – MySQL o MariaDB) e PHP.

prima, per semplificarci le operazioni, installiamo: sudo,  unzip, wget ed un editor vim, mcedit, nano o altro

installiamo sudo e per comodità aggiungiamo il nostro user al gruppo sudoers, che sarà disponibile al prossimo login

apt install sudo  

adduser tuo-user sudo
apt install wget unzip vim -y

Installare i componenti per il server LAMP 

apt install apache2 mariadb-server -y

Installare PHP 

apt install libapache2-mod-php

verranno installati anche i seguenti pacchetti :

libapache2-mod-php7.0 php-common php7.0-cli php7.0-common php7.0-json
php7.0-opcache php7.0-readline

Quindi installare

apt install php-cgi php-gd php-json php-mysql php-curl php-intl
apt install php-zip php-mbstring php-mcrypt php-imagick
apt install php-xmlwriter php-xmlreader php-xml php-simplexml

Configurare MariaDB

Configurare mysql per l’avvio al boot debian 9 usa systemd come init quindi

systemctl start mysql
systemctl enable mysql

Di default MariaDB il fork opensource di mysql non è sicuro per passare all’installazione sicura avviare:

mysql_secure_installation
mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Creare il database per nextcloud  (scegliamo: nextclouddb)  e lo specifico user in MariaDB (mysql ):

entrare  in  myslq

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE nextclouddb;

Creare utente e password per NextCloud

MariaDB [(none)]> CREATE user 'nextcloud'@'localhost' IDENTIFIED BY 'nextcloud-DBpassword';

Garantire allo user nexcloud i privilegi al database creato nextclouddb

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextcloud'@'localhost';

Per attivare i permessi con

MariaDB [(none)]> FLUSH PRIVILEGES;

uscire da mysql con

MariaDB [(none)]>  \q

Configurare apache

Configurare apache per l’avvio al boot debian 9 usa systemd come init quindi

systemctl start apache2
systemctl enable apache2

Abilitare i moduli aggiuntivi

a2enmod rewrite 
a2enmod headers 
a2enmod env 
a2enmod dir 
a2enmod mime

Riavviare apache con

systemctl restart apache2

Installare nextcloud da terminale

Configurata la basedati  installare l’ultima versione dell’applicativo nextcloud. La versione corrente è nextcloud ver. 13.0.2. rilasciata a fine aprile.

wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
mv nextcloud/ /var/www

Per procedere  all’installazione usano il terminale spostarsi nella cartella di nextcloud  ( installing from command line

cd /var/www/nextcloud/

impostare i permessi della cartella con.

chown www-data:www-data . -R

installare con

sudo -u www-data php occ maintenance:install –database “mysql” –database-name “nextclouddb” –database-user “nextcloud” –database-pass “nextcloud-DBpassword” –admin-user “ncadmin” –admin-pass “ncadmin-password”

 
# sudo -u www-data php occ maintenance:install --database "mysql" 
--database-name "nextclouddb" --database-user "nextcloud" 
--database-pass "xxxxxx" --admin-user "ncadmin"  
--admin-pass "xxxxx"

Nextcloud is not installed - only a limited number of commands are available

Nextcloud was successfully installed

E’ necessario ora aggiungere l’indirizzo ip e/o il nome di dominio (fwdn)  tra i domini sicuri nella sezione ‘trusted domain’ nel file di configurazione:

/var/www/nextcloud/config/config.php

Editare il file di configurazione ad esempio con vi o nano è possibile aggiungere più domini che dovranno essere preceduti da un numero progressivo.

vi /var/www/nextcloud/config/config.php
...
'trusted_domains' => 
 array (
0 => 'localhost',
1 => '192.168.1.189',
2 => 'cloud.example.com', 
3 => 'cloud.internal',
 ),
...

Firewall ufw

Installazione e configurazione del firewall ufw

E’ sufficiente rendere disponibile la porta 80 di seguito le istruzioni per rendere disponibili anche la porta 443 per il protocollo https e la porta 22 per il protocollo ssh.

apt install ufw   # installazione firewall 
ufw allow http    # apertura porta 80 
ufw allow https   # apertura porta 443 
ufw allow ssh     # opzionale apertura porta 22 

ufw enable        # abilitazione firewall ufw

Avviare Next Cloud

Per poter avviare Nextcloud è necessario ora  definire  un virtual host file per apache.
In questa fase abilitiamo all’utilizzo del solo protocollo http: .
In un secondo momento verrà configurato apache affinche risponda alla porta https:

creare il file nextcloud.conf

vi  /etc/apache2/sites-available/nextcloud.conf

del tipo

<VirtualHost *:80>
   ServerAdmin admin@example.com
   DocumentRoot "/var/www/nextcloud"
   ServerName 192.168.1.189
   <Directory "/var/www/nextcloud/">
     Options MultiViews FollowSymlinks
     AllowOverride All
     Order allow,deny
     Allow from all
   </Directory>
   TransferLog /var/log/apache2/nextcloud_access.log
   ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

quindi disabilitare il virtual host file di default che reindirizza alla classica pagina Apache2 Debian Default Page 

a2dissite 000-default

e abilitare il virtual host file che farà puntare apache a Nextcloud

a2ensite nextcloud

E riavviare apache

systemctl restart apache2

Rendere sicuro l’accesso a Nextcloud con SSL

Oramai gli standard di accesso alle applicazioni web prevedono l’utilizzo del protocollo https. Quindi risulta necessario creare i certificati SSL per il server apache.
Se non si dispone di un certificato rilasciato da un authority a seconda delle esigenze si può procedere con la creazione di un certificato auto-firmato. Oppure si può utilizzare il servizio online gratuito let’s encrypt per la generazioni di un certificato associato ad un proprio dominio.

Generazione di certificato auto firmato per apache

mkdir /etc/apache2/ssl
cd /etc/apache2/ssl

generare le chiavi SSL

openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key

abilitare il modulo ssl di apache e la configurazione di default per il protocollo https

a2enmod ssl  
a2ensite default-ssl

creare il file nextcloud-s.conf per configurare l’accesso https

vi  /etc/apache2/sites-available/nextcloud.conf

del tipo

<IfModule mod_ssl.c>
<VirtualHost *:80>
#   ServerName cloud.example.com
#   Redirect permanent / https://cloud.example.com/
</VirtualHost>
   
 <VirtualHost *:443>
   DocumentRoot "/var/www/nextcloud"
   
   # ServerName cloud.example.com  
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined

   <Directory /var/www/nextcloud/>
     Options +FollowSymlinks
     AllowOverride All

     SetEnv HOME /var/www/nextcloud
     SetEnv HTTP_HOME /var/www/nextcloud
     Satisfy Any
   </Directory>
   SSLEngine on
   SSLCertificateFile /etc/apache2/ssl/apache.pem
   SSLCertificateKeyFile /etc/apache2/ssl/apache.key

   <IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
   </IfModule>
 </VirtualHost>
</IfModule>

abilitare il virtual host https  nextcloud-s con

a2ensite nextcloud-s

E riavviare apache

systemctl restart apache2

In questo momento nexcloud risponde sia sulla porta 80 che sulla porta 443 dell’indirizzo locale 192.168.1.189.
Per questioni di sicurezza nexcloud invita ad utilizzare il protocollo https

  • You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips.

pertanto la porta 80 andrebbe reindirizzata verso la porta 443 modificando il file di configurazione nexcloud.conf  e aggiungendo la riga in verde con il Redirect permanent /  verso https

<VirtualHost *:80>
    ServerAdmin admin@example.com
    Redirect permanent / https://192.168.1.189/
    
    ...

Let’s Encrypt Certificato SSL/TLS gratuito

Il certificato utilizzato essendo auto firmato  farà si che i browser qualifichino la connessione come non sicura per evitare il warning si può generare il certificato facendo ricorso a Let’s Encrypt .  Let’s Encrypt consente di generare certificati per domini  pubblico gratuitamente. Per utilizzare questo serivizio online in Debian  installare letsencrypt

apt install letsencrypt

ed   apt install python-certbot-apache

generare il certificato con

certbot

perchè letsencrypt possa generare il certificato il dominio indicato dovrà essere esposto sulla rete internet. Per completare il rilascio letsencrypt chiederà infatti di pubblicare in una cartella specifica del dominio un piccolo file con inserita una stringa che verrà verificata dal servizio stesso.

Generato il certificato i file di configurazione di apache andranno modificati sostituendo l’indirizzo ip presente nel parametro ServerName  con il nome del dominio utilizzato per generare il certificato

 

Schermata di login di Nextcloud 13.0.2

Rendere sicura e personalizzare installazione di nextcloud

Prima di procedere alla personalizzazione dell’installazione si può generare una  copia di backup di nextcloud. Così da poter ripristinare l’installazione da questo punto in caso di errori. Si può generare il backup con tar procedere ad una semplice copia

tar zcvf  nextcloudxx.tar.gz /var/www/nexcloud/

oppure

cp -a /var/www/nextcloud   /var/www/nexcloud01

Spostare la cartella data di nextcloud

Per Nextcloud può essere opportuno utilizzare una data directory  diversa da quella default, localizzata nello spazio web.

/var/www/nextcloud/data

ad esempio i dati potrebbero essere spostati  /var/nc-data (  o /opt/nc-data )

/var/nc-data

Muovere la cartella data con

 mv /var/www/nextcloud/data /var/nc-data

ora è necessario precisare il nuovo percorso nel file di configurazione

modificare il file di configurazione con

 vi /var/www/nextcloud/config/config.php

cambiare il valore di datadirectory

'datadirectory' => '/var/www/nextcloud/data',

in

'datadirectory' => '/var/nc-data',

Rendere sicura l’installazione di Nextcloud

Per rendere sicura l’installazione di nextcloud può essere conveniente utilizzare lo script proposto da SyS0p3r  in https://help.nextcloud.com/t/complete-nc-installation-on-debian-9-stretch-and-manual-update/21881

salvare lo script di seguito riportato in /var/www/nc_perm.sh  facendo attenzione che le variabili evidenziate siano correttamente impostate

vi  /var/www/nc_perm.sh
#!/bin/bash
ncpath='/var/www/nextcloud'
ncdata='/var/nc-data'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "Creating possible missing Directories\n"
mkdir -p $ncpath/data
mkdir -p $ncpath/updater

printf "chmod Files and Directories\n"
find ${ncpath} -type f -print0 | xargs -0 chmod 0640
find ${ncpath} -type d -print0 | xargs -0 chmod 0750
find ${ncdata} -type f -print0 | xargs -0 chmod 0640
find ${ncdata} -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ncpath}
chown -R ${htuser}:${htgroup} ${ncpath}/apps/
chown -R ${htuser}:${htgroup} ${ncpath}/config/
chown -R ${htuser}:${htgroup} ${ncdata}/
chown -R ${htuser}:${htgroup} ${ncpath}/themes/
chown -R ${htuser}:${htgroup} ${ncpath}/updater/

chmod +x ${ncpath}/occ

printf "chmod/chown .htaccess\n"
if [ -f ${ncpath}/.htaccess ]
then
        chmod 0644 ${ncpath}/.htaccess
        chown ${rootuser}:${htgroup} ${ncpath}/.htaccess
fi
if [ -f ${ncdata}/.htaccess ]
then
        chmod 0644 ${ncdata}/.htaccess
        chown ${rootuser}:${htgroup} ${ncdata}/.htaccess
fi
## END SCRIPT

Cambiare i permessi del file script con

chmod 750 /var/www/nc_perm.sh

eseguire con

./nc_perm.sh

Primo accesso in Nextcloud 13

Nextcloud 13 dashboard

Configurare PHP OPcache

Al primo avvio Nexcloud nella sezione basic setting  evidenzia che PHPOcache non è configurato in modo appropriato.

* The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Aprire il file di configurazione php.ini per apache modificare le voci specifiche della sezione opcache oppure incollare il blocco di voci al termine della sezione stessa.

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

riavviare apache2

systemctl restart apache2

In setting si evidenzia che le performance migliorano con la configurazione di una cache come memcache.

Nextcloud è un’ applicazione  matura con molte funzionalità, Molte le apps/plugin disponibili.

Alcune apps della sezione multimedia

User Manual disponibile nella sezione help

 

Risorse:

 

 

Annunci

Installare nextcloud 12 in debian 9

Di seguito i passi per una installazione semplice,  una istallazione base di NextCloud su macchina Virtuale debian 9.0.

su
apt update && apt upgrade

Next cloud necessita di un server di tipo  LAMP cioè con installati  Apache – MySQL o MariaDB) e PHP.

prima, per semplificarci le operazioni, installiamo: sudo unzip wget ed un editor vim, mcedit, nano o altro

installiamo sudo e per comodità aggiungiamo il nostro user al gruppo sudoers

apt install sudo  

adduser tuo-user sudo

che sarà disponibile al prossimo login

apt install wget unzip vim -y

Instalare le componenti per il server LAMP 

apt install apache2 mariadb-server -y

Configurare apache per l’avvio al boot debian 9 usa systemd come init quindi

systemctl start apache2 
systemctl enable apache2 
systemctl start mysql
systemctl enable mysql

Installare PHP 

apt install libapache2-mod-php

verranno installati anche i seguenti pacchetti :

libapache2-mod-php7.0 php-common php7.0-cli php7.0-common php7.0-json
php7.0-opcache php7.0-readline

Quindi installare

apt install php-cgi php-gd php-json php-mysql php-curl php-intl
apt install php-zip php-mbstring php-mcrypt php-imagick
apt install php-xmlwriter php-xmlreader php-xml php-simplexml

Configurare MariaDB

Di default MariaDB il fork opensource di mysql non è sicuro per passare all’installazione sicura avviare:

mysql_secure_installation
mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Creare il database per nextcloud  (scegliamo: nextclouddb)  e lo specifico user in MariaDB (mysql ):

entrare  in  myslq

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE nextclouddb;

Creare utente e password per NextCloud

MariaDB [(none)]> CREATE user 'nextcloud'@'localhost' IDENTIFIED BY 'nextcloud-DBpassword' ;

Garantire allo user nexcloud i privilegi al database creato nextclouddb

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextclouddb.* TO 'nextcloud'@'localhost';

Per attivare i permessi con

MariaDB [(none)]> FLUSH PRIVILEGES;

uscire con

MariaDB [(none)]>  \q

Configurata la basedati  installare l’ultima versione dell’applicativo con l’applicativo con

wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
mv nextcloud/ /var/www

Per poter avviare Nextcloud è necessario definire  un virtual host file per apache.
Per una configurazione base creare in sites-available  un file nextcloud.conf

nano  /etc/apache2/sites-available/nextcloud.conf

del tipo

<VirtualHost *:80>
   ServerAdmin admin@example.com
   DocumentRoot "/var/www/nextcloud"
   ServerName 192.168.1.189
   <Directory "/var/www/nextcloud/">
      Options MultiViews FollowSymlinks
      AllowOverride All
      Order allow,deny
      Allow from all
   </Directory>
   TransferLog /var/log/apache2/nextcloud_access.log
   ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

quindi disabilitare il virtual host file di default che reindirizza alla classica pagina Apache2 Debian Default Page 

a2dissite 000-default

e abilitare il virtual host file che farà puntare apache a Nextcloud

a2ensite nextcloud

E riavviare apache

systemctl restart apache2

L’installazione può essere completata utilizzando il browser 

E’ necessario ora  aggiungere l’indirizzo ip o il nome di dominio(fwdn) tra i domini sicuri.

Quindi è possibile impostare l’account di amministrazione configurare il database e il data folder

oppure utilizzando  il terminale

spostarsi nella cartella nextcloud

cd /var/www/nextcloud/

impostare i permessi della cartella con.

chown www-data:www-data . -R

installare con

sudo -u www-data php occ maintenance:install --database "mysql" \
--database-name "nextclouddb" --database-user "nextcloud"  \
--database-pass "nextcloud-DBpassword" --admin-user "ncadmin" \ 
--admin-pass "ncadmin-password"

Nextcloud is not installed - only a limited number of commands are available

Nextcloud was successfully installed

aggiungere l’indirizzo ip e il nome di dominio tra i domini sicuri nella sezione ‘trusted domain’ nel file di configurazione  /var/www/nextcloud/config/config.php

nano /var/www/nextcloud/config/config.php

 

...

'trusted_domains' => 
 array (
0 => 'localhost',
1 => '192.168.1.189',
2 => 'cloud.internal',
3 => 'cloud.example.com', 
 ),

...

Terminata l’installazione sarà possibile effettuare il login

e quindi accedere alla dashboard

Firewall ufw

Installazione e configurazione del firewall ufw

E’ sufficiente rendere disponibile la porta 80 di seguito le istruzioni per rendere disponibili anche la porta 443 per il protocollo https e la porta 22 per il protocollo ssh.

apt install ufw 
ufw allow http 
ufw allow https 
ufw allow ssh 
ufw enable

 

Risorse:

 

Anonimizzare gli indirizzi ip gtag.js e analytics.js rendere anonimi gli indirizzi ip google Analytics

Aggiornamento Maggio 2018: Con l’Anonimizzazione degli indirizzi ip i cookie di analytics ( _ga, _gid _gat )  diventano difatto dei cookie tecnici e quindi non soggetti all’accettazione esplicita. Quindi per questi non è necessario il blocco preventivo dei 3 cookie analytics .

gtag.js è il nuovo snippet usato da Google Analytics per il servizio di statistiche web.
Gtag.js non sarebbe tanto una nuova libreria analytics in quanto è basato sempre sull’ engine v8 della libreria analytics.js. Piuttosto nasce dalla volonta di mettere a disposizione un unico script centralizzato in grado di inviare a tutti gli strumenti Google non solo Analytics ma anche di Marketing come ad esempio AdWords.

Il nuovo snippet  è del tipo

< script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXX-Y"></script >
< script >
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-XXXXXXXX-Y');
</ script >

Rendere anonimi gli indirizzi ip con gtag.js

Per questioni inerenti la privacy policy  risulta opportuno talvolta procedere all’anonimizzazione dell’ indirizzo ip che viene inviato a  Google Analytics .

come indicato in  IP anonymization with gtag.js

Per ottenere questo risultato per tutti gli eventi e quindi per tutte le pagine si può cambiare  la riga dello snippet con il ‘config’ della proprietà ‘UA-XXXXXXXX-X’ impostando il valore del parametro anonymze_ip a true:

nella riga con il config della proprietà

gtag('config', 'UA-XXXXXXXX-Y');

va cambiata aggiungendo il parametro  anonymize e impostandolo al valore true

gtag('config', 'UA-XXXXXXXX-Y', { 'anonymize_ip': true });

E’ bene precisare che l’indirizzo ip degli user non è comunque accessibile all’interno di Google Analytics indipendentemete dall’attivazione dell’anonimizzazione.

L’anomizzazione degli ip non va confusa con gli ID in esplorazione utenti  gli ID non consentono di indentificare il numero IP  dello user.

Da Google Analytics non sarebbe possibile verificare che gli IP siano stati anonimizzati.

Se si desidera visualizzare l’indirizzo ip in Goolge Analytics si deve utliizzare lo snippet per inviare il valore del numero ip

in analytics.js si può usare

 ga('send', 'pageview', {
      'dimension1':  ‘INDIRIZZO_IP’
    });

quindi si deve creare un Rapporto personalizzato

Rendere anonimi gli indirizzi ip in analytics.js

Se si utilizza lo snippet precedente analytics.js

< script >
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-Y', 'auto');

  ga('send', 'pageview'););
</ script >

si possono rendere anonimi gli indirizzi aggiungendo la riga ( libreria analytics.js)

ga('set', 'anonymizeIp', true);

per l’ invio di pagina ( libreria ga,js)

ga('send', 'pageview',{ 'anonymizeIp': true });

Spiegazioni in Google Anonimizzazione IP in analytics

Rendere Anonimi  gli indirizzi ip in Google Tag Manager

Se si utilizza Google Tag Manager per alimentare analytics il  mascheramento /anonimizzazione degli indirizzi ip si può conseguire direttamente,  agendo sulla  finestra Tag Configuration senza intervenire sullo snippet. Infatti Google Tag Manager  (GTM ) mette a disposizione un campo specifico denominato anonymizeIp per ottenere l’anonimizzazione.

L’immagine allegata evidenzia i settaggi da utilizzare per ottenere l’anonimizzazione degli indirizzi ip con il tag di tipo Universal Analytics.

Aperta la finestra Tag Configuration dell’ Universal Analytics  Tag si deve cliccare su:

  • Altre impostazioni / More setting
  • Aggiungi Campo/ ADD FIELD in  Campi da impostare/Fields to Set

Quindi selezionare il nome campo anonymizeIp e impostare il valore a true.

GTM - Anonymize Universal Analytics

AnonymizeIp in Google tag Manager

Per quanto riguarda l’implementazione di analytics in Google Tag Manager.  I passi evidenziati per Universal Analytics si applicano anche al Tag type Classic Google Analytics.

 

Cos’è e come opera il Global Site Tag (gtag.js)

come anticipato il Global Site Tag ha l’obiettivo di gestire in modo unificato con un solo snippet l’invio dei dati ai tools google. Citando google “gtag.js è una libreria di tag web per i prodotti Google di misurazione dei siti, monitoraggio delle conversioni e remarketing che consente di esercitare un maggiore controllo e, al contempo, agevolare l’implementazione. Con gtag.js puoi sfruttare le integrazioni e funzionalità dinamiche più recenti non appena diventano disponibili.”

Se ad esempio si intendono inviare i dati oltre ad analytics anche ad AdWords sarà sufficiente aggiungere oltre alla riga con il ‘config’ della proprietà analytics una riga con il config della proprieta AdWords.

...
gtag('config', 'UA-XXXXXXXX-Y');
gtag('config', 'AW-XXXXXXXX-Y');
...

 

Risorse:

 

Disabilitare e cancellare i cookie nei browsers: Chrome, Firefox, Safari, Explorer, Opera, Vivaldi

Aggiornamento Maggio 2018

Di seguito la procedura per disabilitare i cookie nei principali browsers: Chrome, Firefox, Opera, Explorer

L’attenzione alle problematiche connesse all’utilizzo dei cookies nei siti web è stata accentuata in seguito al Provvedimento Generale del Garante del 8 maggio 2014″ €œIndividuazione delle modalità  semplificate per l’informativa e l’acquisizione del consenso per l’uso dei cookie”.  Più specificamtente la normativa che in Italia regolamenta l’uso dei cookie è rappresentata da:

  • Codice in materia di protezione dei dati personali D.lgs. 196/2003  art. 122 secondo comma;
  • “Individuazione delle modalità semplificate per l’informativa e l’acquisizione del consenso per l’uso dei cookie”  pubblicata sulla Gazzetta Ufficiale n.126 del 3 giugno 2014 e relativo registro dei provvedimenti n.229 dell’8 maggio 2014.

 

Google Chrome – Chromium disabilitare i cookie

  • Fare click sul <menu> di chrome impostazioni presente nella barra degli strumenti del browser a fianco della finestra di inserimento url per la navigazione
  • Selezionare <Impostazioni>
  • Fare clic sul link “Mostra Impostazioni Avanzate” in fondo alla pagina;
  • Nella sezione <Privacy> fare clic sul pulsante <Impostazioni contenuti>
  • Nella sezione “Cookies” è possibile modificare le seguenti impostazioni relative ai cookie:
    • Consentire il salvataggio dei dati in locale
    • Modificare i dati locali solo fino alla chiusura del browser
    • Impedire ai siti di impostare i cookies
    • Bloccare i cookie di terze parti e i dati dei siti
    • Gestire le eccezioni per alcuni siti internet
    • Eliminare uno o tutti i cookies

Maggiori informazioni sono disponibili alle pagine esterne  Google Chrome – Gestione dei cookie e dei dati dei siti   e Attivazione e disattivazione dei cookie

Firefox – PaleMoon – Iceweasel disabilitare i cookie

  • Fare click sul <menu> di firefox presente nella barra degli strumenti del browser a fianco della finestra di inserimento url per la navigazione
  • Selezionare <Opzioni>
  • Seleziona il pannello <Privacy>
  • Nella sezione “Cronologia” selezionando dal menu a discesa <utilizza impostazioni personalizzate> è possibile:
    • selezionare di accettare i cookie di terze parti (sempre, dai siti più visitato o mai) e di conservarli per un periodo determinato (fino alla loro scadenza, alla chiusura di Firefox o di chiedere ogni volta)
    • Rimuovere i singoli cookie immagazzinati
  • Nella sezione “Tracciamento” è possibile impedire il tracciamento da parte dei siti.

Maggiori informazioni sono disponibili alla pagina Firefox Attivare e disattivare i cookie

Opera disabilitare i cookie

  • Fare click sul <menu> di opera
  • Selezionare <Impostazioni>
  • Fare clic su <Privacy e Security>;
  • Nella sezione “Cookies” è possibile modificare le seguenti impostazioni relative ai cookie:
    • Consentire il salvataggio dei dati in locale
    • Modificare i dati locali solo fino alla chiusura del browser
    • Impedire ai siti di impostare i cookies
    • Bloccare i cookie di terze parti e i dati dei siti
    • Gestire le eccezioni per alcuni siti internet
    • Eliminare uno o tutti i cookies

Nella versione precedente di Opera versione 12.xx

  • Selezionare nel Menu di Opera <Preferenze>
  • Nella gfinestra selezionare il tab <Avanzate> e infine su Cookies
  • Selezionare una delle seguenti opzioni:
    • Accetta tutti i cookie
    • Accetta i cookie solo dal sito che si visita: i cookie di terze parti e che vengono inviati da un dominio diverso da quello che si sta visitando verranno rifiutati
    • Non accettare mai i cookie: tutti i cookie non verranno mai salvati
    • Grazie al pulsante <Manage Cookies> e possibile agire sul singoli cookie dei siti visitati.

Maggiori informazioni sono presenti nella pagina Opera Cookie

Internet Explorer

  • Fare click sul pulsante Strumenti e scegliere Opzioni Internet
  • Fare click sulla scheda Privacy e nella sezione Impostazioni modificare il dispositivo di scorrimento in funzione dell’azione desiderata per i cookie:
  • Bloccare tutti i cookie
  • Consentire tutti i cookie
  • Selezione dei siti da cui ottenere cookie: spostare il cursore in una posizione intermedia in modo da non bloccare o consentire tutti i cookie, premere quindi su Siti, nella casella Indirizzo Sito Web inserire un sito internet e quindi premere su Blocca o Consenti

Per maggiori informazioni visita la pagina dedicata.

Safari

  • Eseguire il Browser Safari
  • Fare click su Safari, selezionare Preferenze e premere su Privacy
  • Nella sezione Blocca Cookie specificare come Safari deve accettare i cookie dai siti internet.
  • Per visionare quali siti hanno immagazzinato i cookie cliccare su Dettagli

Maggiori informazioni sono disponibili alla pagina Safari 8 (Yosemite): Gestire cookie e dati dei siti web

Safari iOS (dispositivi mobile)

  • Eseguire il Browser Safari iOS
  • Tocca su Impostazioni e poi Safari
  • Tocca su Blocca Cookie e scegli tra le varie opzioni: “Mai”, “Di terze parti e inserzionisti” o “Sempre”
  • Per cancellare tutti i cookie immagazzinati da Safari, tocca su Impostazioni, poi su Safari e infine su Cancella Cookie e dati

Per maggiori informazioni visita la pagina dedicata.

 

Se si desidera associare la visita delle pagine del sito al proprio account social, si deve effettuare il log-off.  I social network consentono all’utente di disabilitare i social plugin. Di seguito le pagine con le indicazioni:

Per avere maggiori informazioni sull’elaborazione e l’utilizzo dei dati attraverso i social network, così come sulle impostazioni per la tutela della privacy, è conveniente  verificare le privacy policy dei social network o siti web specifici. Le informazioni sono disponibili ai seguenti link:

I cookies di Google Analytics possono essere rifiutati secondo la procedura indicata da Google (https://tools.google.com/dlpage/gaoptout?hl=it). Pertanto, l’utilizzo del Sito senza rifiutare i cookies di Google implica il consenso dell’utente al trattamento dei propri dati da parte di Google, limitatamente alle modalità e finalità sopraindicate. Per consultare l’informativa privacy della società Google, relativa al servizio Google Analytics, l’utente è pregato di visitare il sito Internet http://www.google.com/analytics/learn/privacy.html. Per conoscere le norme sulla privacy di Google, l’Utente è pregato di visitare il sito Internet http://www.google.com/intl/it/privacy/privacy-policy.html.

 

Navigazione in incognito come impostarla in Explorer – Chrome – Firefox – Safari

La navigazione in incognito è possibile con tutti i browser principali. La navigazione in incognito consente di esplorare i siti internet senza lasciare traccia nel browser. In questa modalità i  viene impedito che un sito consegni i cookie, che vengano registrati i dati di un modulo ne  i suggerimenti per le ricerche.

La navigazione in incognito non va confusa con la nagazione anonima.  Nella navigazione in incognito l’ip dell’utente infatti non viene nascosto. Per navigare anonimamente si deve ricorrere a proxy o sistemi quali TOR.

Per impostare la navigazione in incognito nei principali browser fare riferimento ai links di seguito riportati:

Cancellare i cookie

Tutti i principali browser mettono a disposizione strumenti per cancellare i cookie  raccolti durante la navigazione. Da notare che se si decide di disabilitare tutti i cookie, alcune funzionalità del sito che si sta navigando potrebbero non essere disponibili.

Chrome

Per eliminare i cookie procedere come indicato nella guida di Google Chrome

per cancellare i cookies in sintesi

More Tools > Clearing Browsing Data  ( Ctrl + Shift + Del )

oppure

per controllare i cookie ed elimare gli stessi in modo selettivo:

  1. Selezionare nel menu Altro e poi Impostazioni.
  2. clic su Avanzate in fondo.
  3. Nella sezione “Privacy e sicurezza”, clic su Impostazioni contenuti.
  4. clic su Cookie.
  5. Nella sezione “Tutti i cookie e i dati dei siti” cerca il nome del sito web.
  6. A destra del nome del sito, fai clic su Rimuovi Rimuovi.

oppure

  1. tasto destro
  2. dal menu contestuale clic su Inspect in fondo
  3. Selezionare nel menu in alto Application
  4. In Storage a destra clic su Cookies
  5. A questo punto sarà possibile agire sul singolo cookie dello specifico dominio

Firefox

Per eliminare i cookie procedere come indicato nella guida on line di Firefox

In sintesi ù

  • clic su  menu
  • clic su preferences  (  edit  > preferences )
  • menu a destra clic su Privacy 

utilizzare i linel nella finestra centrale:
clear your recent history, or remove individual cookies

oppure

usare controllare e cancellare i sigoli cookie utilizzando Web Developer

  1. tasto destro
  2. dal menu contestuale clic su Inspect in fondo
  3. Selezionare nel menu in alto a destra ToolBox Options ( Icona ingranaggio )
  4. Spuntare [] Storage a destra Default Firefox Developer Tools
  5. Apparirà la voce Storage nel menu orizzontale della  finestra inspect
  6. A questo punto sarà possibile agire sul singolo cookie dello specifico dominio

è possibile accedere direttamente a Storage con [Shift + F9]

Explorer

Per eliminare i cookie procedere come indicato nella guida Internet Explorer

E’ possibile impedire che vengano salvati solo i cookie pubblicitari o comportamentali utilizzando il servizio fornito dal sito Your Online Choiches ,

Maggiori informazioni e dettagli sui vari tipi di cookie, le loro modalità di funzionamento e caratteristiche sono reperibili sul sito http://www.AllAboutCookies.org, indipendente da Eurotech SpA e ad accesso libero.

Safari

Per eliminare i cookie procedere come indicato nella guida on line di Safari

Safari 8 (Yosemite): Gestire cookie e dati dei siti web

Risorse:

Cambiare l’owner degli oggetti in un database postgresql: type, table, sequence, view, index,special, function

Una comoda query per modificare l’owner di tutti gli oggetti presenti in uno schema del database postreSQL.

La query è ripresa dal blog garysieling:  https://www.garysieling.com/blog/postgres-change-owner-all-objects-in-schema

Sono state apportate poche modifiche la principale per consentire l’utilizzo del maiuscolo nel nome degli oggetti e una diversa organizzazione degli oggetti type, table, sequence, index, view e special.

La query utilizza pg_class per visualizzare gli oggetti: tipo, tabella, sequenza, vista, indice e special.

Nel campo pg_class.relkind viene indicato il tipo di oggetto. Di seguito i codici presenti in relkind:

  • table ordinary = relkind = r
  • table TOAST  = t
  • table foreign = f
  • sequence = S
  • view = ‘v
  • index = ‘i
  • special = s
-- FUNCTION: public.__chown_object(character varying, character varying)

-- DROP FUNCTION public.__chown_object(character varying, character varying);

CREATE OR REPLACE FUNCTION public.__chown_object(
	in_schema character varying,
	new_owner character varying)
    RETURNS void
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
    --ROWS 0
AS $BODY$

DECLARE
  object_types VARCHAR[];
  object_classes VARCHAR[];
  object_type record;
 
  r record;
BEGIN
  -- modifica owner tipi, tabelle, sequenze, indici e viste
  object_types = '{type,table,table,sequence,index,view}';
  object_classes = '{c,t,r,S,i,v}';
 
  FOR object_type IN 
      SELECT unnest(object_types) type_name, 
                unnest(object_classes) code
  loop
    FOR r IN 
      EXECUTE '
          select n.nspname, c.relname 
          from pg_class c, pg_namespace n 
          where n.oid = c.relnamespace 
            and nspname = ''' || in_schema || '''
            and relkind = ''' || object_type.code || ''''
            
    loop 
      raise notice 'Changing ownership of % %.% to % %', 
                  object_type.type_name, 
                  r.nspname, r.relname, new_owner, object_type.code;
                     
             
     EXECUTE 
       'alter ' || object_type.type_name || ' '
                || r.nspname || '."' || r.relname 
                 || '" owner to ' || new_owner;
    END loop;
  END loop;
  -- end modifica owner tipi, tabelle, sequenze, indici e viste

  -- modifica owner funzioni 
  FOR r IN 
    SELECT  p.proname, n.nspname,
       pg_catalog.pg_get_function_identity_arguments(p.oid) args
    FROM    pg_catalog.pg_namespace n
    JOIN    pg_catalog.pg_proc p
    ON      p.pronamespace = n.oid
    WHERE   n.nspname = in_schema
  LOOP
    raise notice 'Changing ownership of function %.%(%) to %', 
                 r.nspname, r.proname, r.args, new_owner;
    EXECUTE 
       'alter function ' || r.nspname || '."' || r.proname ||
       '"(' || r.args || ') owner to ' || new_owner;
  END LOOP; 
  -- modifica owner funzioni 

  -- modifica owner particolari 
  FOR r IN 
    SELECT * 
    FROM pg_catalog.pg_namespace n
    JOIN pg_catalog.pg_ts_dict d 
      ON d.dictnamespace = n.oid
    WHERE n.nspname = in_schema
  LOOP
    EXECUTE 
       'alter text search dictionary ' || r.nspname || '.' || r.dictname || 
       ' owner to ' || new_owner;
  END LOOP;
  -- modifica owner particolari  -

END;

$BODY$;

ALTER FUNCTION public.__chown_object(character varying, character varying)
    OWNER TO postgresql;

Plpgsql 

Postgresql 

Postgresql cancella record duplicati

Creare eliminare database e tabelle

Formattare le tabelle con i CSS cellspacing e cellpadding – nuove classi per bootstrap

In Html 5.0 gli attributi delle tabelle cellspacing e cellpadding non sono attributi validi e devono essere sostituti con l’utilizzo dei CSS.

  • cellpadding definisce il padding di una cella della tabella: la distanza tra il contenuto della cella e il suo perimetro.
  • cellspacing  definisce la distanza tra le celle di una tabella.  

cellpadding

per replicare l’effetto di cellpadding si deve impostare il padding delle celle quindi:

table td {
    padding: 2px;
}

poichè una tabella  può avere un header e un footer meglio includere anche questi elementi nella definizione di stile

table th, table td, table tf {
     padding: 2px;
 }

cellspacing

in css la proprietà border-collapse consente di replicare cellspacing due i valori possibili separate e collapse.

per eleminare le distanze tra le celle

table {     
      border-collapse: collapse;
 }

Per inserire una distanza in pixel usare il valore separate e impostare la proprietà border-spacing

table {
      border-collapse: separate;
      border-spacing: 5px;
 }

Bootstrap e le tabelle

Bootstrap per le tabelle definisce alcune classi che consentono una buona formattazione delle tabelle  stesse

  • table-responsive
  • table-condensed
  • table-bordered
  • table-striped

Considerato che bootstrap per condensed utilizza un padding di 5px è preferibile invece che cambiare  il valore di padding definire una nuova classe da posizionare in un foglio di style accessorio con un padding più contenuto anche di soli 0px.

.table-xcondensed > thead > tr > th,
.table-xcondensed > tbody > tr > th,
.table-xcondensed > tfoot > tr > th,
.table-xcondensed > thead > tr > td,
.table-xcondensed > tbody > tr > td,
.table-xcondensed > tfoot > tr > td {
    padding: 2px!important;
}

Con riferimento alle tabelle usando bottstrap può far comodo disporre anche di una classe table-bordless per  eliminare completamente i bordi di una tabella

table.table-borderless td, table.table-borderless th {
    border: none!important;
}

.table-borderless > tbody > tr > td,
.table-borderless > tbody > tr > th,
.table-borderless > tfoot > tr > td,
.table-borderless > tfoot > tr > th,
.table-borderless > thead > tr > td,
.table-borderless > thead > tr > th {
    border: none!important;
}

 

 

Risorse: