Installare Nextcloud su Ubuntu

Installare Nextcloud su Ubuntu 20.04

In questo articolo cercherò di spiegarvi nel modo più completo possibile come installare Nextcloud su Ubuntu. I passaggi descritti sono stati testati su Ubuntu 20.04 LTS.

Nextcloud è una valida alternativa ai più famosi servizi come GDrive, OneDrive, etc. La principale differenze è la possibilità di installare Nextclod on-premis, quindi completamente sui nostri server.

La modalità per installare Nextcloud su Ubuntu della quale vi spiegherò i passi da seguire, sarà l’installazione più “difficile” e lunga, e cioè installando separatamente MySQL, Apache e PHP (ovvero LAMP).

Per chi invece non avesse o non potesse seguire tutti i passaggi descritti di seguito, potrà installare Nextcloud in altri modi, ad esempio con i pacchetti snap.

Prerequisiti

  • Una macchina fisica o virtuale con Ubuntu 20.04 LTS o superiori (potrebbe funzionare anche con versioni meno recenti), con almeno 1GB di RAM.

Tutti i comandi qui di seguito dovranno essere eseguiti come utente root oppure tramite il comando sudo da anteporre ad ogni comando.

Installazione pacchetti

Di seguito trovate un comando (bello lungo) che permetterà di installare tutti i pacchetti necessari al funzionamento di Nextcloud. Nel caso utilizziate una versione meno recente di Ubuntu, è possibile che non troviate la versione 7.4 di PHP, e dovrete ricorrere a una versione minore come la 7.3 o 7.2.

apt install apache2 php7.4 php7.4-fpm php7.4-mysql php7.4-zip php7.4-curl php7.4-apcu php-dompdf php7.4-xml php7.4-mbstring php7.4-intl php-imagick php7.4-bcmath php7.4-gmp libapache2-mod-php7.4 mariadb-server unzip

Nota: come potete vedere ho inserito tra gli altri pacchetti anche MariaDB, che utilizzeremo come database server. Per chi non volesse utilizzare MariaDB come database potrà usare MySQL, in quanto tutti i comandi della guida sono validi su entrambi i database.

Configurazione di Apache:

Il primo passo per installare Nextcloud su Ubuntu è procedere con l’attivazione dei moduli di Apache necessari al nostro scopo:

a2enmod rewrite headers env dir mime ssl

Apache per funzionare ha bisogno di alcuni file di configurazione che gli indichino quali pagine mostrare. Possiamo usare un programma come WinSCP o FileZilla per creare e modificare il file o direttamente da terminale nano o vi. Creiamo quindi il file /etc/apache2/sites-available/nextcloud.conf e all’interno del file appena creato inseriamo il testo seguente:

<VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  your.server.com

  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
    DocumentRoot /var/www/nextcloud
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    <IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>
  </VirtualHost>
</IfModule>

Il codice qui sopra, per chi non lo comprendesse, in poche parole indica ad Apache di mostrare il contenuto della cartella /var/www/nextcloud quando aprirete il sito tramite browser. In aggiunta alla porta 80, il sito sarà raggiungibile anche tramite il protocollo HTTPS sulla porta 443.

Nota: Il certificato usato è quello di default e di conseguenza self-signed, pertanto all’accesso della pagina di Nextcloud il browser mostrerà un avviso di sicurezza, ma potete ignorarlo.

A questo punto attiviamo il nuovo sito e disattiviamo quello di default che non utilizzeremo con i seguenti comandi:

a2dissite 000-default
a2ensite nextcloud.conf
systemctl restart apache2

Configurazione di MariaDB

Wizard iniziale

Prima di poter utilizzare MariaDB, sarà necessario eseguire un primo wizard per “mettere in sicurezza” l’istanza del database, in modo da evitare eventuali accessi non autorizzati.

Ora vi spiegherò come eseguire e rispondere al wizard.

Per lanciare il wizard utilizziamo il seguente comando:

mysql_secure_installation

Essendo una procedura guidata, ci verranno chieste alcune informazioni.

Io vi consiglio di rispondere nel modo seguente, ovviamente come password dovrete inserirne una vostra personalizzata.

  • Prima domanda: premete INVIO (la password non è ancora stata definita)
  • Seconda domanda: inserite una password a vostra scelta per l’account root del database. Da conservare per i passaggi successivi.
  • Terza domanda: inserire la stessa password.
  • Dalla quarta domanda in poi: confermare le impostazioni di default con il tasto INVIO.

Creazione utente e schema

A questo punto andiamo a creare lo schema sul db e un utente con i privilegi sullo schema. Questi ci serviranno per far comunicare Nextcloud con il database.

Per prima cosa apriamo la shell di MariaDB, in questo modo. La password da utilizzare per fare entrare è quella impostata durante il wizard sopra.

mysql -uroot -p

Una volta entrati creiamo lo schema, l’utente e diamo i permessi completi all’utente appena creato. Al posto di password inseriamo una password a nostra scelta, abbastanza complessa.

CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER nextcloud@localhost IDENTIFIED BY "password";
GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost;
quit

Installare Nextcloud su Ubuntu

Bene, arrivati a questo punto avremo Apache e MariaDB configurati. Non ci resta che scaricare il pacchetto e procedere nell’installare Nextcloud su Ubuntu.

Andiamo sul sito di Nextcloud e clicchiamo sul pulsante Get Nextcloud, poi su Server Packages. Facciamo click con il tasto destro sul pulsante Download Nextcloud e click su Copia collegamento.

Ora torniamo sul terminale di Ubuntu e diamo il seguente comando per scaricare l’archivio contenente i file di Nextcloud. Sostituiamo la versione 20.0.5 con la versione corrente del collegamento copiato in precedenza (al momento attuale l’ultima versione è proprio la 20.0.5).

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

Ora diamo i seguenti comandi per scompattare la cartella e dare i permessi giusti:

unzip nextcloud-20.0.5.zip -d /var/www
chown -R www-data:www-data /var/www/nextcloud

Come vedete sopra, la cartella in cui ho scompattato l’archivio è /var/www. Questa è solo la cartella che contiene il “motore” di Nextcloud. Possiamo scegliere quindi dove mettere la cartella che conterrà effettivamente i nostri dati che andremo a caricare. Il percorso può essere sullo stesso disco o su un disco esterno. In ogni caso è sempre sconsigliato usare la cartella /var/www/nextcloud come contenitore dei dati, per motivi di sicurezza.

mkdir /opt/nextcloud_data
chown -R www-data:www-data /opt/nextcloud_data

Ottimo, a questo punto basterà collegarsi al server Apache tramite il browser per iniziare il wizard di setup. Nel mio caso sarà https://192.168.1.219/.

Wizard di Nextcloud

Siamo arrivati quasi alla fine ed abbiamo terminato i passaggi per installare Nextcloud su Ubuntu, ora rimane solo da utilizzare il wizard per configurare Nextcloud. Qui sotto potete vedere come si presenta.

Installare Nextcloud su Ubuntu - Wizard Configurazione
Installare Nextcloud su Ubuntu – Wizard Configurazione

Nelle prime due caselle dovrete inserire il nome e la password del nuovo utente (che sarà anche amministratore). Nella terza casella sarà da inserire il percorso della cartella che conterrà tutti i file e cartelle caricati in futuro.

Infine, nelle ultime quattro caselle dovrete inserire i dati del database: nome utente (nel nostro caso nextcloud), la password che avete scelto, il nome del database (nel nostro caso sempre nextcloud) e nell’ultima casella potete lasciare il valore di default in quanto il database server è installato sulla stessa macchina che contiene anche Apache.

Cliccate quindi sul pulsante Termina configurazione e attendete che Nextcloud finisca la sua installazione. Al termine vi sarà proposta la seguente schermata di benvenuto.

Installare Nextcloud su Ubuntu - Wizard completato Schermata Benvenuto
Installare Nextcloud su Ubuntu – Wizard completato Schermata Benvenuto

Ultimi ritocchi

Giunti a questo punto, Nextcloud sarà configurato e pronto per poter essere utilizzato. Rimangono però alcuni azioni da eseguire per configurarlo al meglio e ottimizzare il sistema. Di seguito inserirò alcuni comandi da eseguire.

PHP

sed -i 's/output_buffering = 4096/output_buffering = Off/g' /etc/php/7.4/apache2/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/apache2/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/7.4/cli/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 16G/g' /etc/php/7.4/apache2/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 16G/g' /etc/php/7.4/apache2/php.ini
systemctl restart apache

Caching

sed -i "s/);/  'memcache.local' => '\\\OC\\\Memcache\\\APCu',\n);/g" /var/www/nextcloud/config/config.php
chown -R www-data:www-data /var/www/nextcloud/config/config.php

Controllo indici database

chmod +x /var/www/nextcloud/occ
sudo -u www-data /var/www/nextcloud/occ db:add-missing-indices

Conclusione

Bene, abbiamo visto come installare Nextcloud su Ubuntu e se avete seguito alla lettera tutti i passati avete Nextcloud funzionante e pronto. Non vi resta che utilizzarlo per caricare i vostri documenti.
Ricordate comunque di fare un backup, sopratutto del database e della cartella nextcloud_data.

Se avete difficoltà nel seguire i passaggi necessari per installare Nextcloud su Ubuntu potete scrivere nei commenti.

Autore Bartolomeo

Consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su configurazione Windows, Linux e WordPress.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003