NextCloud è un server di file sharing e hosting di file gratuito e open source derivato dal progetto ownCloud. È molto simile ad altri servizi di condivisione file come Google Drive, Dropbox e iCloud. NextCloud ti consente di archiviare file, documenti, immagini, filmati e video dalla posizione centrale. Con NextCloud puoi condividere file, contatti e qualsiasi altro media con i tuoi amici e clienti. NextCloud si integra con posta, calendario, contatti e altre funzionalità che aiuteranno i tuoi team a svolgere il proprio lavoro in modo più semplice e veloce. Puoi installare il client NextCloud su una macchina desktop per sincronizzare i file con il tuo server Nextcloud. I client desktop sono disponibili per la maggior parte dei sistemi operativi, inclusi Windows, macOS, FreeBSD e Linux.
In questo tutorial spiegheremo come installare NextCloud e proteggerlo con Let's Encrypt SSL su Debian 10.
Prerequisiti
- Un server che esegue Debian 10.
- Un nome di dominio valido puntato con l'IP del tuo server. in questo tutorial utilizzeremo il dominio nextcloud.example.com.
- Sul tuo server è configurata una password di root.
Installa Apache, MariaDB e PHP
NextCloud viene eseguito sul server web, scritto in PHP e utilizza MariaDB per archiviare i propri dati. Quindi dovrai installare Apache, MariaDB, PHP e altri pacchetti richiesti sul tuo sistema. Puoi installarli tutti eseguendo il seguente comando:
apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip -y
Una volta installati tutti i pacchetti, apri il file php.ini e modifica alcune impostazioni consigliate:
nano /etc/php/7.3/apache2/php.ini
Modifica le seguenti impostazioni:
memory_limit = 512M upload_max_filesize = 500M post_max_size = 500M max_execution_time = 300 date.timezone = Asia/Kolkata
Salva e chiudi il file quando hai finito. Quindi, avvia il servizio Apache e MariaDB e abilita l'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb
Una volta terminato, puoi procedere al passaggio successivo.
Configura database per NextCloud
Successivamente, dovrai creare un database e un utente del database per NextCloud. Per farlo, accedi alla shell di MariaDB con il seguente comando:
mysql -u root -p
Fornisci la tua password di root quando richiesto, quindi crea un database e un utente con il seguente comando:
MariaDB [(none)]> CREATE DATABASE nextclouddb;
MariaDB [(none)]> CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';
Quindi, concedi tutti i privilegi a nextclouddb con il seguente comando:
MariaDB [(none)]> GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';
Quindi, svuota i privilegi ed esci dalla shell MariaDB con il seguente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Una volta terminato, puoi procedere al passaggio successivo.
Scarica NextCloud
Innanzitutto, visita la pagina di download di NextCloud e scarica l'ultima versione di NextCloud sul tuo sistema. Al momento della stesura di questo articolo, l'ultima versione di NextCloud è la 17.0.1. Puoi scaricarlo con il seguente comando:
wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip
Una volta completato il download, decomprimere il file scaricato con il seguente comando:
unzip nextcloud-17.0.1.zip
Quindi, sposta la directory estratta nella directory principale web di Apache:
mv nextcloud /var/www/html/
Quindi, dai le autorizzazioni appropriate alla directory nextcloud con il seguente comando:
chown -R www-data:www-data /var/www/html/nextcloud/
chmod -R 755 /var/www/html/nextcloud/
Una volta terminato, puoi procedere al passaggio successivo.
Configura Apache per NextCloud
Successivamente, dovrai creare un file di configurazione dell'host virtuale Apache per servire NextCloud. Puoi crearlo con il seguente comando:
nano /etc/apache2/sites-available/nextcloud.conf
Aggiungi le seguenti righe:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/nextcloud/ ServerName nextcloud.example.com Alias /nextcloud "/var/www/html/nextcloud/" <Directory /var/www/html/nextcloud/> Options +FollowSymlinks AllowOverride All Require all granted <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Salva e chiudi il file quando hai finito. Quindi, abilita il file dell'host virtuale Apache e altri moduli richiesti utilizzando i seguenti comandi:
a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
Infine, riavvia il servizio Apache per applicare la nuova configurazione:
systemctl restart apache2
Proteggi NextCloud con Let's Encrypt Free SSL
NextCloud è ora installato e configurato. Successivamente, si consiglia di proteggerlo con Let's Encrypt SSL gratuito. Per farlo, installa prima il client Certbot con il seguente comando:
apt-get install python-certbot-apache -y
Una volta installato, puoi eseguire il seguente comando per installare Let's Encrypt Certificate per il tuo dominio nextcloud.example.com.
certbot --apache -d nextcloud.example.com
Durante l'installazione, ti verrà chiesto di fornire il tuo indirizzo e-mail e di accettare i termini del servizio come mostrato di seguito:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for nextcloud.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/nextcloud-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/nextcloud-le-ssl.conf Enabling available site: /etc/apache2/sites-available/nextcloud-le-ssl.conf Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Quindi, digita 2 e premi Invio per scaricare e installare un certificato SSL gratuito per il tuo dominio. Una volta che l'installazione è stata completata con successo. Dovresti ottenere il seguente output:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/nextcloud.conf to ssl vhost in /etc/apache2/sites-available/ nextcloud-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://nextcloud.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=nextcloud.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2019-10-22. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Una volta terminato, puoi procedere al passaggio successivo.
Accedi all'interfaccia Web NextCloud
Il tuo NextCloud è ora configurato e protetto con Let's Encrypt SSL. Quindi, apri il tuo browser web e digita l'URL https://nextcloud.example.com . Verrai reindirizzato alla seguente pagina:
Ora, fornisci il tuo nome utente e password di amministratore, la cartella Dati, le credenziali del database corrette e fai clic su Fine configurazione pulsante. Verrai reindirizzato alla dashboard di NextCloud nella pagina seguente:
Per ora è tutto.
Conclusione
Congratulazioni! hai installato e protetto con successo NextCloud con Let's Encrypt Free SSL su Debian 10. Ora puoi condividere facilmente file, documenti e media con altri utenti usando l'interfaccia web di NextCloud.