GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Nextcloud 13 su Ubuntu 16.04 con Nginx

Avevamo pubblicato un tutorial su come installare Nextcloud su Ubuntu 16.04 con server web Apache già a giugno 2016, poco dopo il primo rilascio pubblico di Nextcloud. Ma molte persone vogliono usare Nginx piuttosto che Apache come server web. Quindi in questo tutorial vedremo come installare Nextcloud 13 su Ubuntu 16.04 con Nginx.

Nota:se stai usando Ubuntu 18.04, segui questo tutorial:Installa Nextcloud su Ubuntu 18.04 con Nginx (stack LEMP)

Prerequisiti

Innanzitutto, dovresti dare un'occhiata a questo tutorial di installazione di LEMP per Ubuntu 16.04 se non hai ancora installato LEMP. Una volta installato, torna qui e continua a leggere.

Passaggio 1:scarica NextCloud 13

Scarica l'archivio zip del server NextCloud sul tuo server. L'ultima versione stabile è 13.0.4 al momento della stesura di questo articolo. Potrebbe essere necessario modificare il numero di versione. Vai a https://nextcloud.com/install e fai clic sul pulsante di download per controllare l'ultima versione.

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

Estrailo.

sudo apt install unzip

unzip nextcloud-13.0.4.zip

Una nuova directory denominata nextcloud verrà creato nella directory di lavoro corrente. Sposta la nuova directory e tutto il suo contenuto nella root dei documenti del server web Nginx

sudo mv nextcloud /usr/share/nginx/

Quindi devi anche impostare l'utente Nginx (www-data) come proprietario della directory NextCloud.

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

Fase 2:crea un database e un utente in MariaDB

Accedi al server del database di MariaDB con il seguente comando:

sudo mysql -u root

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 la tua 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:abilita la registrazione binaria in MariaDB

Modifica il file di configurazione di mysqld.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Aggiungi le seguenti tre righe in [mysqld] sezione.

log-bin        = /var/log/mysql/mariadb-bin
log-bin-index  = /var/log/mysql/mariadb-bin.index
binlog_format  = mixed

Il formato del log binario deve essere mixed . Salva e chiudi il file. Quindi riavvia il servizio MariaDB.

sudo systemctl restart mysql

Ora il log binario è abilitato in MariaDB.

Fase 4:crea un file di configurazione Nginx per Nextcloud

Crea un nextcloud.conf file in /etc/nginx/conf.d/ directory.

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

Inserisci il seguente testo nel file. Sostituisci il testo di colore rosso con i tuoi dati effettivi. Non dimenticare di impostare un record A per il nome di dominio.

server {
    listen 80;
    server_name nextcloud.your-domain.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;

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

    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$uri;
    }

    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)(/.*)$;
       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.0-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;
        # 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. Testare la configurazione di Nginx, quindi ricaricare Nginx per rendere effettive le modifiche.

sudo nginx -t

sudo systemctl reload nginx

Fase 5:installa e abilita i moduli PHP

Esegui i seguenti comandi per installare i moduli PHP necessari.

sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl  php7.0-zip php7.0-xml php7.0-mbstring

Passaggio 6:abilita HTTPS

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

nextcloud.your-domain.com

Ma prima di inserire qualsiasi informazione sensibile, dovremmo abilitare la connessione HTTPS sicura su Nextcloud. Possiamo ottenere un certificato TLS gratuito da Let's Encrypt. Esegui i seguenti comandi per installare il client certbot (Let's Encrypt) su Ubuntu 16.04 dal PPA ufficiale. Il software-properties-common il pacchetto è necessario per aggiungere PPA su Ubuntu. A volte, non è installato per impostazione predefinita su Ubuntu. Python-certbot-nginx è il plugin Nginx.

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python-certbot-nginx

Potrebbe anche essere necessario aggiornare alcune librerie.

sudo apt upgrade

Quindi, esegui il comando seguente per ottenere un certificato TLS gratuito utilizzando il plug-in Nginx.

sudo certbot --nginx --agree-tos --redirect --staple-ocsp --email your-email-address -d nextcloud.your-domain.com

Entro pochi secondi, vedrai un messaggio come di seguito, il che significa che il certificato TLS è stato ottenuto e installato correttamente.

Completa l'installazione nel tuo browser web

Ora puoi accedere alla procedura guidata di installazione web di Nextcloud utilizzando la connessione HTTPS. Per completare l'installazione, è necessario creare un account amministratore, inserire il percorso della cartella dei dati di Nextcloud, inserire i dettagli del database creato in precedenza.

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 radice web 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

Al termine, vedrai l'interfaccia Web di Nextcloud. Congratulazioni! Puoi iniziare a usarlo come archivio cloud privato.

Questo è tutto! Spero che questo tutorial ti abbia aiutato a installare Nextcloud su Ubuntu 16.04 con Nginx config. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita. Puoi anche seguirci su Google+, Twitter o mi piace sulla nostra pagina Facebook.


Ubuntu
  1. Come installare WordPress con Nginx su Ubuntu 18.04

  2. Come installare phpMyAdmin con Nginx su Ubuntu 18.04

  3. Come installare Nextcloud con Nginx su Ubuntu 18.04 LTS

  4. Come installare MediaWiki con Nginx su Ubuntu 16.04

  5. Come installare PHP 7.4 con Nginx su Ubuntu 20.04

Come installare OSClass con Nginx su Ubuntu 20.04

Come installare Nginx con ModSecurity su Ubuntu 15.04

Come installare WordPress 5.x con Nginx su Ubuntu 18.04 / Ubuntu 16.04

Come installare NextCloud su Ubuntu 20.04 con Apache

Come installare Nextcloud su Ubuntu 18.04 e 16.04

Come installare Nginx su Ubuntu 15.04