GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa NextCloud su Ubuntu 20.04 con Nginx (stack LEMP)

Questo tutorial ti mostrerà come installare NextCloud su Ubuntu 20.04 LTS con il server web Nginx.

Cos'è NextCloud?

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à NextCloud

  • Gratuito e open source
  • Crittografia end-to-end, il che significa che i file possono essere crittografati sui dispositivi client prima di caricarli sul server, quindi anche se qualcuno ruba il tuo server, non può leggere i tuoi file.
  • 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.
  • L'app store contiene centinaia di app per estendere le funzionalità (come app calendario, app contatti, app per prendere appunti, app per videoconferenze e così via).
  • Il client di sincronizzazione è disponibile su Linux, macOS, Windows, iOS e Android.

Prerequisiti

NextCloud è scritto nel linguaggio di programmazione PHP. Per seguire questo tutorial, devi prima installare lo stack LEMP su Ubuntu 20.04 . Se non l'hai già fatto, dai un'occhiata al seguente tutorial.

  • Come installare lo stack LEMP (Nginx, MariaDB, PHP7.4-FPM) su Ubuntu 20.04

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. Ti consiglio di acquistare un nome di dominio, se vuoi davvero armeggiare con il software del server e utilizzarlo al massimo delle potenzialità.

Ora installiamo NextCloud.

Passaggio 1:scarica NextCloud su Ubuntu 20.04

Accedi al tuo server Ubuntu 20.04. Quindi scarica l'archivio zip NextCloud sul tuo server. L'ultima versione stabile è la 21.0.1 al momento della stesura di questo articolo. Potrebbe essere necessario modificare il numero di versione. Vai su https://nextcloud.com/install e fai clic su download for server pulsante per vedere l'ultima versione.

Puoi eseguire il seguente comando per scaricarlo sul tuo server.

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

Puoi sempre utilizzare il formato URL sopra riportato per scaricare NextCloud. Se esce una nuova versione, sostituisci semplicemente 21.0.1 con il nuovo numero di versione.

Una volta scaricato, estrai l'archivio con unzip .

sudo apt install unzip

sudo unzip nextcloud-21.0.1.zip -d /usr/share/nginx/

Il -d opzione specifica la directory di destinazione. I file web di NextCloud verranno estratti in /usr/share/nginx/nextcloud/ . Quindi dobbiamo cambiare il proprietario di questa directory in www-data in modo che il server web (Nginx) possa scrivere in questa directory.

sudo chown www-data:www-data /usr/share/nginx/nextcloud/ -R

Fase 2:crea un database e un utente per Nextcloud in MariaDB Database Server

Accedi al server del database MariaDB con il seguente comando. Dal momento che MariaDB ora sta usando unix_socket plug-in per l'autenticazione dell'accesso utente, non è necessario inserire la password di root di MariaDB. Dobbiamo solo anteporre mysql comando con sudo .

sudo mysql

Quindi crea un database per Nextcloud. Questo tutorial nomina il database nextcloud. Puoi usare il nome che preferisci.

create database nextcloud;

Crea l'utente del database. Anche in questo caso, puoi utilizzare il tuo nome preferito per questo utente. Sostituisci your-password con la tua password preferita.

create user nextclouduser@localhost identified by 'your-password';

Concedi a questo utente tutti i privilegi su nextcloud banca dati.

grant all privileges on nextcloud.* to nextclouduser@localhost identified by 'your-password';

Elimina i privilegi ed esci.

flush privileges;

exit;

Fase 3:crea un file di configurazione Nginx per Nextcloud

Crea un nextcloud.conf file in /etc/nginx/conf.d/ directory, con un editor di testo a riga di comando come Nano.

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

Copia e incolla il seguente testo nel file. Sostituisci nextcloud.example.com con il tuo sottodominio preferito. 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.

server {
    listen 80;
    listen [::]:80;
    server_name nextcloud.example.com;

    # Add headers to serve security related headers
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    add_header Referrer-Policy no-referrer;

    #I found this header is needed on Ubuntu, but not on Arch Linux. 
    add_header X-Frame-Options "SAMEORIGIN";

    # Path to the root of your installation
    root /usr/share/nginx/nextcloud/;

    access_log /var/log/nginx/nextcloud.access;
    error_log /var/log/nginx/nextcloud.error;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # The following 2 rules are only needed for the user_webfinger app.
    # Uncomment it if you're planning to use this app.
    #rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    #rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
    # last;

    location = /.well-known/carddav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
       return 301 $scheme://$host/remote.php/dav;
    }

    location ~ /.well-known/acme-challenge {
      allow all;
    }

    # set max upload size
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;

    # Disable gzip to avoid the removal of the ETag header
    gzip off;

    # Uncomment if your server is build with the ngx_pagespeed module
    # This module is currently not supported.
    #pagespeed off;

    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    location / {
       rewrite ^ /index.php;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
       deny all;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
       deny all;
     }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
       include fastcgi_params;
       fastcgi_split_path_info ^(.+\.php)(/.*)$;
       try_files $fastcgi_script_name =404;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       #Avoid sending the security headers twice
       fastcgi_param modHeadersAvailable true;
       fastcgi_param front_controller_active true;
       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
       fastcgi_intercept_errors on;
       fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
       try_files $uri/ =404;
       index index.php;
    }

    # Adding the cache control header for js and css files
    # Make sure it is BELOW the PHP block
    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
        # have those duplicated to the ones above)
        add_header X-Content-Type-Options nosniff;
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        add_header Referrer-Policy no-referrer;
        # Optional: Don't log access to assets
        access_log off;
   }

   location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        # Optional: Don't log access to other assets
        access_log off;
   }
}

Salva e chiudi il file. (Per salvare un file nell'editor di testo Nano, premi Ctrl+O , quindi premi Enter per confermare. Per uscire, premi Ctrl+X .)

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

Fase 4:installa e abilita i moduli PHP

Esegui i seguenti comandi per installare i moduli PHP richiesti o consigliati da NextCloud.

sudo apt install imagemagick php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl  php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp

Passaggio 5:abilita HTTPS

Ora puoi accedere alla procedura guidata di installazione web di Nextcloud nel tuo browser web inserendo il nome di dominio per la tua installazione di Nextcloud.

nextcloud.example.com

Se la pagina web non può essere caricata, probabilmente devi aprire la porta 80 nel firewall.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

E anche la porta 443.

sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Prima di inserire qualsiasi informazione sensibile, dovremmo abilitare la connessione HTTPS sicura su Nextcloud. Possiamo ottenere un certificato TLS gratuito da Let's Encrypt. Installa il client Let's Encrypt (certbot) dal repository Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Python3-certbot-nginx è il plugin Nginx. Quindi, esegui il comando seguente per ottenere un certificato TLS gratuito utilizzando il plug-in Nginx.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d nextcloud.example.com

Dove:

  • –nginx :usa l'autenticatore e il programma di installazione Nginx
  • –accetto :Accetto i termini di servizio di Let's Encrypt
  • –reindirizzamento :applica HTTPS aggiungendo il reindirizzamento 301.
  • –hsts :Abilita la sicurezza del trasporto rigoroso HTTP. Questo protegge dagli attacchi di stripping SSL/TLS.
  • –staple-ocsp :Abilita la pinzatura OCSP.
  • –e-mail :Email utilizzata per la registrazione e il contatto di recupero.
  • -d flag è seguito da un elenco di nomi di dominio, separati da virgola. Puoi aggiungere fino a 100 nomi di dominio.

Ti verrà chiesto se desideri ricevere e-mail da EFF (Electronic Frontier Foundation). Dopo aver scelto S o N, il tuo certificato TLS verrà automaticamente ottenuto e configurato per te, come indicato dal messaggio sottostante.

Ho scoperto che Certbot potrebbe non essere in grado di aggiungere l'intestazione HSTS nel file di configurazione Nginx per Nextcloud. Se desideri abilitare HSTS (HTTP Strict Transport Security), modifica il file.

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

Possiamo quindi aggiungere la seguente riga nel blocco del server SSL per abilitare l'intestazione HSTS. (Se è già lì, allora la tua configurazione va bene.)

add_header Strict-Transport-Security "max-age=31536000" always;

Inoltre, puoi abilitare il protocollo HTTP2 aggiungendo l'opzione http2 , che velocizzerà il caricamento della pagina web.

listen 443 ssl http2; # managed by Certbot

Come sotto.

Salva e chiudi il file. Quindi scrivi le configurazioni di Nginx.

sudo nginx -t

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

sudo systemctl reload nginx

La configurazione sopra otterrà un punteggio A+ nel test SSL.

Fase 6:Completa l'installazione nel tuo browser web

Ora puoi accedere alla procedura guidata di installazione web di Nextcloud utilizzando la connessione HTTPS.

https://nextcloud.example.com

Per completare l'installazione, devi creare un account amministratore, inserire il percorso della cartella dei dati di Nextcloud, inserire i dettagli del database che hai creato nel passaggio 2. Puoi utilizzare il localhost predefinito come indirizzo host, oppure puoi inserire localhost:3306 , poiché MariaDB è in ascolto sulla porta 3306.

La cartella dei dati è il luogo in cui vengono archiviati i file degli utenti. Per sicurezza, è meglio posizionare la directory dei dati al di fuori della directory webroot di Nextcloud. Quindi, invece di archiviare i file degli utenti in /usr/share/nginx/nextcloud/data/ , possiamo cambiarlo in /usr/share/nginx/nextcloud-data . che può essere creato con il seguente comando:

sudo mkdir /usr/share/nginx/nextcloud-data

Quindi assicurati che l'utente Nginx (www-data ) dispone dell'autorizzazione di scrittura nella directory dei dati.

sudo chown www-data:www-data /usr/share/nginx/nextcloud-data -R

Fare clic su Finish Setup pulsante, vedrai l'interfaccia Web di Nextcloud. Congratulazioni! Puoi iniziare a usarlo come archivio cloud privato.

Come impostare la notifica e-mail di NextCloud

Se la tua istanza NextCloud verrà utilizzata da più di una persona, è importante che il tuo server NextCloud possa inviare e-mail transazionali, come e-mail di reimpostazione della password. Innanzitutto, dovresti impostare un indirizzo email per il tuo account. Vai a Settings -> Personal Info e imposta un indirizzo email per il tuo account.

Quindi vai su Impostazioni -> Impostazioni di base . Troverai le impostazioni del server di posta elettronica. Ci sono due modalità di invio:sendmail e smtp . Puoi scegliere il sendmail modalità se il tuo host NextCloud ha un server SMTP in esecuzione.

Se desideri utilizzare un server SMTP in esecuzione su un altro host, scegli smtp modalità e inserisci l'indirizzo del server SMTP e le credenziali di accesso come di seguito. Scegli STARTTLS per la crittografia.

Per come configurare un server di posta elettronica, dai un'occhiata al seguente tutorial. Nota che consiglio vivamente di eseguire il server di posta iRedMail su un nuovo sistema operativo pulito. L'installazione di iRedMail su un sistema operativo che dispone di altre applicazioni Web può non riuscire e probabilmente interrompere le applicazioni esistenti.

  • Come configurare facilmente un server di posta completo su Ubuntu 20.04 con iRedMail

Come reimpostare la password utente Nextcloud dalla riga di comando

Se hai perso la password del tuo account amministratore e non hai impostato la consegna della posta elettronica in Nextcloud, devi reimpostare la password eseguendo il comando seguente sul tuo server. Sostituisci nextcloud_username con il tuo vero nome utente.

sudo -u www-data php /usr/share/nginx/nextcloud/occ user:resetpassword nextcloud_username

Ci sono anche altri comandi che potresti trovare utili. Elenca i comandi disponibili con:

sudo -u www-data php /usr/share/nginx/nextcloud/occ

o

sudo -u www-data php /usr/share/nginx/nextcloud/console.php

Come spostare la directory dei dati

Nel caso in cui sia necessario spostare la directory dei dati di NextCloud, ci sono 4 passaggi per farlo. Per prima cosa, devi usare il cp comando per copiare la directory dei dati nella nuova directory. Ad esempio, il punto di montaggio del mio disco rigido esterno è /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731 . Creo la nuova directory dei dati sul disco rigido esterno.

sudo mkdir /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Quindi copio la directory dei dati originale nella nuova directory dei dati. -R flag significa che l'operazione di copia è ricorsiva.

sudo cp /usr/share/nginx/nextcloud-data/* /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Devi anche copiare il .ocdata file.

sudo cp /usr/share/nginx/nextcloud-data/.ocdata /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/

Successivamente, devi impostare www-data (utente Nginx) come proprietario.

sudo chown www-data:www-data /media/linuxbabe/b43e4eea-9796-4ac6-9c48-2bcaa46353731/nextcloud-data/ -R

Infine, devi modificare il config.php file.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Trova la riga seguente e cambia il valore di datadirectory .

'datadirectory' => '/usr/share/nginx/nextcloud-data',

Salva e chiudi il file. Ricarica la pagina web di NextCloud e il gioco è fatto.

Passaggio 7:aumenta il limite di memoria PHP

Il limite di memoria PHP predefinito è 128 MB. NextCloud consiglia 512 MB per prestazioni migliori. Per modificare il limite di memoria PHP, modifica il php.ini file.

sudo nano /etc/php/7.4/fpm/php.ini

Trova la riga seguente. (riga 409)

memory_limit = 128M

Modifica il valore.

memory_limit = 512M

Salva e chiudi il file. In alternativa, puoi eseguire il comando seguente per modificare il valore senza aprire manualmente il file.

sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/fpm/php.ini

Quindi ricarica PHP-FPM servizio per rendere effettive le modifiche.

sudo systemctl reload php7.4-fpm

Passaggio 8:imposta PHP per eseguire correttamente query sulle variabili di ambiente del sistema

Modifica il www.conf file.

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

Trova la riga seguente (riga 396).

;clear_env = no

Rimuovi il punto e virgola per rimuovere il commento da questa riga.

clear_env = no

Salva e chiudi il file. In alternativa, puoi eseguire il comando seguente per rimuovere il commento da questa riga senza aprire manualmente il file.

sudo sed -i 's/;clear_env = no/clear_env = no/g' /etc/php/7.4/fpm/pool.d/www.conf

Quindi ricarica PHP-FPM servizio per rendere effettive le modifiche.

sudo systemctl reload php7.4-fpm

Fase 9:aumenta il limite delle dimensioni del file di caricamento

Il limite di dimensione massima del file di caricamento predefinito impostato da Nginx è 1 MB. Per consentire il caricamento di file di grandi dimensioni sul tuo server NextCloud, modifica il file di configurazione Nginx per NextCloud.

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

Abbiamo già impostato la dimensione massima del file in questo file, come indicato da

client_max_body_size 512M;

Puoi cambiarlo se preferisci, come 1G.

client_max_body_size 1024M;

Salva e chiudi il file. Quindi ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

PHP imposta anche un limite per la dimensione del file di caricamento. La dimensione massima predefinita del file per il caricamento è 2 MB. Per aumentare il limite della dimensione del caricamento, modifica il file di configurazione PHP.

sudo nano /etc/php/7.4/fpm/php.ini

Trova la riga seguente (riga 846).

upload_max_filesize = 2M

Modifica il valore come di seguito:

upload_max_filesize = 1024M

Salva e chiudi il file. In alternativa, puoi eseguire il comando seguente per modificare il valore senza aprire manualmente il file.

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 1024M/g' /etc/php/7.4/fpm/php.ini

Quindi riavvia PHP-FPM.

sudo systemctl restart php7.4-fpm

Passaggio 10:configura Redis Cache per NextCloud

Se vai alle impostazioni di NextCloud -> panoramica pagina, potresti visualizzare il seguente avviso:

No memory cache has been configured. To enhance your performance please configure a memcache if available.

Abiliteremo la memorizzazione nella cache per nextCloud usando Redis. Esegui il comando seguente per installare il server Redis dal repository di Ubuntu.

sudo apt install redis-server

Puoi controllare la versione con:

redis-server -v

Esempio di output:

Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923

Ora possiamo verificare se il server redis è in esecuzione.

systemctl status redis

Suggerimento:se il comando precedente non si è chiuso immediatamente, puoi premere il tasto Q per riprendere il controllo del terminale.

Dallo screenshot sopra, possiamo vedere che è in esecuzione e l'avvio automatico è abilitato. Se per qualsiasi motivo non è in esecuzione, esegui il seguente comando:

sudo systemctl start redis-server

E se l'avvio automatico all'avvio non è abilitato, puoi utilizzare il seguente comando per abilitarlo:

sudo systemctl enable redis-server

Per configurare Redis come cache per nextCloud, è necessario installare l'estensione PHP per interfacciarsi con Redis.

sudo apt install php-redis

Verifica se l'estensione è abilitata.

php --ri redis

Possiamo vedere che l'estensione Redis è abilitata. Se non è abilitato, esegui il seguente comando:

sudo phpenmod redis

Quindi, modifica il file di configurazione di nextCloud.

sudo nano /usr/share/nginx/nextcloud/config/config.php

Aggiungi le seguenti righe sopra la fine ); linea.

'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     ),

Salva e chiudi il file. Quindi riavvia Nginx e PHP-FPM.

sudo systemctl restart nginx php7.4-fpm

Ora vai alle impostazioni di NextCloud -> panoramica pagina di nuovo e aggiorna la pagina web, l'avviso sulla memorizzazione nella cache dovrebbe essere scomparso.

Aggiunta di indici mancanti

Se vedi il seguente messaggio nelle Impostazioni di NextCloud -> Panoramica pagina,

The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically.

Quindi è necessario aggiungere manualmente quegli indici. Passa alla directory webroot di Nextcloud.

cd /usr/share/nginx/nextcloud/

Esegui il comando seguente per aggiungere indici al database Nextcloud.

sudo -u www-data php occ db:add-missing-indices

Ora, se aggiorni le Impostazioni di NextCloud -> Panoramica pagina, l'avviso sugli indici mancanti dovrebbe essere scomparso.

Conversione a Big Int

Se vedi il seguente messaggio nelle Impostazioni di NextCloud -> Panoramica pagina,

Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically.

Quindi è necessario modificare manualmente il tipo di colonna. Passa alla directory webroot di Nextcloud.

cd /usr/share/nginx/nextcloud/

Imposta il tuo Nextcloud in modalità di manutenzione per impedire agli utenti di accedere e apportare modifiche.

sudo -u www-data php occ maintenance:mode --on

Quindi esegui il comando seguente per modificare il tipo di colonna.

sudo -u www-data php occ db:convert-filecache-bigint

Al termine, disattiva la modalità di manutenzione.

sudo -u www-data php occ maintenance:mode --off

Ora, se aggiorni le Impostazioni di NextCloud -> Panoramica page, l'avviso su big int dovrebbe essere scomparso.

Come installare il client NextCloud su Ubuntu 20.04 Desktop

Esegui i seguenti comandi sul desktop di Ubuntu 20.04 per installare il client dal repository predefinito.

sudo apt install nextcloud-client

Client NextCloud su Ubuntu 20.04

Il software client per macOS, Windows, Android e iOS è disponibile nella pagina di download di Nextcloud.

Come abilitare OnlyOffice/Collabora Online

Per impostazione predefinita, Nextcloud viene fornito con il supporto per OnlyOffice, una suite per ufficio online che ti consente di modificare i tuoi file doc, ppt, xls direttamente da NextCloud. Abbiamo solo bisogno di installare un'app per utilizzare questa funzione. Vai a Nextcloud Apps -> Office & Text . Trova e abilita il community document server app.

Ora, quando fai clic sul pulsante Aggiungi (+) in Nextcloud, sarai in grado di creare documenti Word, fogli di calcolo e presentazioni direttamente dal tuo server Nextcloud.

Tuttavia, ho scoperto che questa app non è molto affidabile. E l'edizione community consente solo 20 utenti al massimo. Devi acquistare un'edizione Enterprise se hai più di 20 utenti. C'è un'altra suite per ufficio online basata su LibreOffice open source chiamata Collabora Online che ha le stesse funzionalità, ma senza la limitazione del numero di utenti. Puoi leggere il seguente articolo per integrarlo con Nextcloud.

  • Integra Collabora Online con Nextcloud su Ubuntu con Docker

Aggiunta di una voce DNS locale

Si consiglia di modificare il /etc/hosts file sul tuo server Nextcloud e aggiungi la seguente voce, in modo che Nextcloud stesso non debba interrogare il DNS pubblico, il che può migliorare la stabilità generale. Se il tuo server Nextcloud non riesce a risolvere il nextcloud.example.com hostname, potresti riscontrare un timeout del gateway 504 errore.

127.0.0.1   localhost nextcloud.example.com

Un indirizzo IP in /etc/hosts il file può avere più nomi host, quindi se hai altre applicazioni installate sulla stessa casella, puoi anche aggiungere altri nomi host o sottodomini sulla stessa riga in questo modo:

127.0.0.1   localhost focal ubuntu nextcloud.example.com collabora.example.com

Utilizzo di Cron per eseguire lavori in background

Per impostazione predefinita, Nextcloud utilizza AJAX per eseguire un'attività con ogni caricamento della pagina. È possibile utilizzare il servizio cron di sistema più efficiente per eseguire lavori in background. Vai a Nextcloud Impostazioni -> Impostazioni di base e seleziona Cron .

Quindi, modifica i www-data file crontab dell'utente.

sudo -u www-data crontab -e

Aggiungi la seguente riga in questo file, in modo che il processo cron venga eseguito ogni 5 minuti.

*/5 * * * * php7.4 -f /usr/share/nginx/nextcloud/cron.php

Salva e chiudi il file.

(Facoltativo) Impedisci tentativi di accesso dannosi

Se il tuo computer ha un indirizzo IP pubblico statico, puoi creare una whitelist IP nel file di configurazione di Nginx.

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

Aggiungi le seguenti righe nel blocco del server SSL per limitare l'accesso a /login URL, quindi solo il tuo indirizzo IP può accedere a questo URL. Sostituisci 78.56.34.12 con il tuo indirizzo IP.

location ~* ^/login{
       try_files $uri /index.php;
       include fastcgi_params;
       fastcgi_split_path_info ^(.+\.php)(/.*)$;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param PATH_INFO $fastcgi_path_info;
       #Avoid sending the security headers twice
       fastcgi_param modHeadersAvailable true;
       fastcgi_param front_controller_active true;
       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
       fastcgi_intercept_errors on;
       fastcgi_request_buffering off;

       allow 78.56.34.12;
       deny all;
}

Salva e chiudi il file. 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

Se non disponi di un indirizzo IP statico sulla tua rete domestica, puoi configurare un server VPN in un data center.

Suggerimenti per la risoluzione dei problemi

Se riscontri errori, puoi controllare uno dei seguenti file di registro per scoprire cosa c'è che non va.

  • Registro errori Nginx:/var/log/nginx/error.log
  • Registro degli errori Nginx per l'host virtuale Nextcloud:/var/log/nginx/nextcloud.error
  • Registro dell'applicazione Nextcloud:/usr/share/nginx/nextcloud/data/nextcloud.log

Ad esempio, una volta ho avuto un "Internal Server Error ” sulla mia istanza Nextcloud e il /var/log/nginx/nextcloud.error file me lo ha detto

FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught OC\HintException: [0]: Memcache \OC\Memcache\Redis not available for local cache (Is the matching PHP module installed and enabled?)

Si è scoperto che poiché ho usato il PPA ppa:ondrej/php sul mio server Ubuntu, devo anche installare php7.4-redis oltre a php-redis pacchetto.

Aggiornamento di Nextcloud

È importante mantenere aggiornato il tuo server Nextcloud con le ultime correzioni di sicurezza e bug. Leggi il tutorial qui sotto per sapere come aggiornare Nextcloud.

  • 2 modi per aggiornare Nextcloud [riga di comando e GUI]

Ubuntu
  1. Come installare il server HTTP Git con Nginx su Ubuntu 16.04

  2. Come installare WordPress con Stack LEMP su CentOS 8

  3. Come installare LEMP su Ubuntu 16.04

  4. Come installare WordPress con uno stack LEMP su Ubuntu 18.04

  5. Installa phpMyAdmin su Ubuntu 20.04 con Nginx

Installa NextCloud su Ubuntu 18.04 con Nginx (stack LEMP)

Installa NextCloud su Ubuntu 20.04 con Apache (stack LAMP)

Come installare Nextcloud 13 su Ubuntu 16.04 con Nginx

Come installare lo stack LEMP (Nginx, MariaDB, PHP7.2) su Ubuntu 18.04 LTS

Come installare lo stack LEMP su Ubuntu 20.04 Server/Desktop

Come installare lo stack LEMP con PhpMyAdmin in Ubuntu 20.04