(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 source2 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
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à.
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.
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/.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
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.
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.Copia e incolla il testo sottostante nel file nextcloud.conf creato in precedenza, sostituiresudo nano /etc/nginx/conf.d/nextcloud.conf
nextcloud.example.com con il tuo sottodominio preferito.Non dimenticare di creare un record DNS A per questo sottodominio nell'editor di zona DNS.server {listen [::]:80;server_name nextcloud.example.com;# Add headers to serve security related headersadd_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 installationroot /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-jsonreturn 301 $scheme://$host/remote.php/dav;return 301 $scheme://$host/remote.php/dav;location ~ /.well-known/acme-challenge {# set max upload sizeclient_max_body_size 512M;# Disable gzip to avoid the removal of the ETag header# Uncomment if your server is build with the ngx_pagespeed moduleerror_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 twicefastcgi_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 fileslocation ~* \.(?: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 toadd_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 assetslocation ~* \.(?: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;}
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
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-curlphp8.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