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.