TUTORIAL - ItaliaLive

Vai ai contenuti
(24.0.1)
Questo tutorial ti mostrerà come installare NextCloud su Ubuntu 22.04 LTS con il server web Nginx.

Cos'è

NextCloud è una soluzione di archiviazione cloud self-hosted open source gratuita. È funzionalmente simile a Dropbox .  Le soluzioni di archiviazione cloud proprietarie (Dropbox, Google  Drive, ecc.) sono convenienti, ma a un prezzo: possono essere utilizzate  per raccogliere dati personali perché i tuoi file sono archiviati sui  loro computer. Se sei preoccupato per la privacy, puoi passare a  NextCloud, che puoi installare sul tuo server privato o su un server privato virtuale (VPS) .  Puoi caricare i tuoi file sul tuo server tramite NextCloud e quindi  sincronizzare quei file sul tuo computer desktop, laptop o smartphone.  In questo modo hai il pieno controllo dei tuoi dati.

Funzionalità

1 Gratuito e open source
2 Crittografia end-to-end, il  che significa che i file possono essere crittografati sui dispositivi  client prima di essere caricati sul server, quindi anche se qualcuno  ruba il tuo server,
3 non può leggere i tuoi file.
4 Può essere integrato con una suite per ufficio online ( Collobora Online , OnlyOffice) così puoi creare e modificare i tuoi file doc, ppt, xls direttamente da NextCloud.
5 L'app store contiene  centinaia di app per estendere le funzionalità (come app calendario, app  contatti, app per prendere appunti, app per videoconferenze, ecc.).
6 Il client di sincronizzazione è disponibile su Linux, macOS, Windows, iOS e Android.

Requisiti

Puoi installare NextCloud sul tuo server di casa o su un VPS (server privato virtuale).
Hai anche bisogno di un nome  di dominio, quindi in seguito sarai in grado di abilitare HTTPS per  crittografare il traffico HTTP. Ho registrato il mio nome di dominio da NameCheap perché  il prezzo è basso e offrono protezione della privacy a whois gratuita  per tutta la vita. NextCloud può essere installato senza un nome di  dominio, ma non ha davvero senso se non si crittografa la connessione  HTTP per prevenire lo snooping. Consiglio di acquistare un nome di  dominio se si desidera davvero armeggiare con il software del server e  utilizzarlo al massimo delle potenzialità.
Ora installiamo NextCloud.

Passaggio 1
Scarica
su

Accedi al tuo server Ubuntu  22.04 LTS. Quindi scarica l'archivio zip NextCloud sul tuo server. L'ultima  versione stabile è la 24.0.1 al momento della stesura di questo  articolo.
Vai su https://download.nextcloud.com/server/releases/ e selezionare l'ultima versione.
Come esempio sotto riportato.



Puoi eseguire il seguente comando per scaricarlo sul tuo server.

wget https://download.nextcloud.com/server/releases/nextcloud-24.0.1.zip

Se esce una nuova versione, è sufficiente sostituire 24.0.1 con il nuovo numero di versione.

Installa l'utilità di decompressione.

sudo apt install unzip

Crea la directory /var/www/ con il comando sottostante ed estrarre il file di archivio.

sudo mkdir -p /var/www/
sudo unzip nextcloud-24.0.1.zip -d /var/www/

Il -d specifica la directory di destinazione. I file web di NextCloud verranno estratti in /var/www/nextcloud/.

Passaggio 2
Crea un database e un utente
per

NextCloud è compatibile con PostgreSQL, MariaDB/MySQL e SQLite,  quindi useremo PostgreSQL  in questo tutorial in quando è piu veloce e leggero.
Se in precedenza hai installato NextCloud con il  server di database MariaDB/MySQL, puoi anche migrare a PostgreSQL.

Esegui il comando seguente per  installare PostgreSQL.  (PostgreSQL e MariaDB possono essere eseguiti  sullo stesso server. Non è necessario rimuovere MariaDB.)

sudo apt install -y postgresql postgresql-contrib

Accedi a PostgreSQL come utente Postgres.

sudo -u postgres psql

Creare un Database nextcloud.

CREATE DATABASE nextcloud TEMPLATE template0 ENCODING 'UNICODE';

Crea un utente (nextcloud_you_user) e impostare una password (you_password).

CREATE USER nextcloud_you_user WITH PASSWORD 'you_password';
Sostituite [nextcloud_you_user] e [you_password] con il vostro username e la vostra password.

Concedere le autorizzazioni all'utente del database.

ALTER DATABASE nextcloud OWNER TO nextcloud_you_user;
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nextcloud_you_user;
Sostituite [nextcloud_you_user] con il vostro username.

Premere Ctrl+D per disconnettersi dalla console PostgreSQL.

Quindi esegui il comando seguente per verificare se puoi accedere a PostgreSQL come nextcloud_you_user.
Sostituite [nextcloud_you_user] con il vostro username.

psql -h 127.0.0.1 -d nextcloud -U nextcloud_you_user -W
Sostituite [nextcloud_you_user] con il vostro username.

Premere Ctrl+D per disconnettersi.

Passaggio 3

Crea un host virtuale

Installa il server web Nginx.

sudo apt install nginx

Creare un file nextcloud.conf nella directory, /etc/nginx/conf.d/ con un editor di testo a riga di comando, tipo Nano.

sudo nano /etc/nginx/conf.d/nextcloud.conf

Copia e incolla il testo sottostante nel file nextcloud.conf creato in precedenza, sostituire nextcloud.example.com con  il tuo sottodominio preferito.

server {
   listen [::]:80;
   server_name nextcloud.example.com;
   # Add headers to serve security related headers
   add_header X-XSS-Protection "1; mode=block";
   add_header X-Download-Options noopen;
   add_header X-Permitted-Cross-Domain-Policies none;
   #I found this header is needed on Ubuntu, but not on Arch Linux.
   # Path to the root of your installation
   root /var/www/nextcloud/;
   access_log /var/log/nginx/nextcloud.access;
   location = /robots.txt {
       log_not_found off;
   }
   # The following 2 rules are only needed for the user_webfinger app.
   #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
   #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
       return 301 $scheme://$host/remote.php/dav;
      return 301 $scheme://$host/remote.php/dav;
   location ~ /.well-known/acme-challenge {
   # set max upload size
   client_max_body_size 512M;
   # Disable gzip to avoid the removal of the ETag header
   # Uncomment if your server is build with the ngx_pagespeed module
   error_page 403 /core/templates/403.php;
   error_page 404 /core/templates/404.php;
      rewrite ^ /index.php;
   location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
   location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
   location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      #Avoid sending the security headers twice
      fastcgi_param front_controller_active true;
      fastcgi_pass unix:/run/php/php8.1-fpm.sock;
   location ~ ^/(?:updater|ocs-provider)(?:$|/) {
      index index.php;
   # Adding the cache control header for js and css files
   location ~* \.(?:css|js)$ {
       try_files $uri /index.php$uri$is_args$args;
       add_header Cache-Control "public, max-age=7200";
       # Add headers to serve security related headers (It is intended to
       add_header X-Content-Type-Options nosniff;
       add_header X-XSS-Protection "1; mode=block";
       add_header X-Download-Options noopen;
       add_header X-Permitted-Cross-Domain-Policies none;
       # Optional: Don't log access to assets
  location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
       # Optional: Don't log access to other assets
}
   listen 80;
   add_header X-Content-Type-Options nosniff;
   add_header X-Robots-Tag none;
   add_header Referrer-Policy no-referrer;
   add_header X-Frame-Options "SAMEORIGIN";
   error_log /var/log/nginx/nextcloud.error;
       allow all;
       access_log off;
   # Uncomment it if you're planning to use this app.
   # last;
   location = /.well-known/carddav {
   }
   location = /.well-known/caldav {
   }
     allow all;
   }
   fastcgi_buffers 64 4K;
   gzip off;
   # This module is currently not supported.
   #pagespeed off;
   location / {
   }
      deny all;
   }
      deny all;
    }
      include fastcgi_params;
      fastcgi_split_path_info ^(.+\.php)(/.*)$;
      try_files $fastcgi_script_name =404;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_param modHeadersAvailable true;
      fastcgi_intercept_errors on;
      fastcgi_request_buffering off;
   }
      try_files $uri/ =404;
   }
   # Make sure it is BELOW the PHP block
       # have those duplicated to the ones above)
       add_header X-Robots-Tag none;
       add_header Referrer-Policy no-referrer;
       access_log off;
  }
       try_files $uri /index.php$uri$is_args$args;
       access_log off;
  }

Non dimenticare di creare un record DNS A per questo sottodominio nell'editor di zona DNS.
Se non hai un vero nome di dominio, ti consiglio di andare su NameCheap per acquistarne uno il prezzo è basso e offrono protezione della privacy a chi è gratuita per tutta la vita.
Salva e chiudi il file.  (Per salvare il file nell'editor di testo Nano, premere Ctrl+O, quindi premere Enter per confermare, per uscire, premere Ctrl+X.)

Dobbiamo cambiare i permessi dela directory www-data in modo che il server web (Nginx) possa scrivere in questa directory.

sudo chown www-data:www-data /var/www/nextcloud/ -R

Quindi testa la configurazione di Nginx.

sudo nginx -t

Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Passaggio 4

Installa e abilita i moduli

L'ultima versione di NextCloud è  compatibile con PHP8.1.  Esegui i seguenti comandi per installare i  moduli PHP richiesti o consigliati da NextCloud.

sudo apt install imagemagick php-imagick php8.1-common php8.1-pgsql php8.1-fpm php8.1-gd php8.1-curl 
php8.1-imagick php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-bcmath php8.1-gmp

Passaggio 5

Abilita HTTPS
Torna ai contenuti