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.
Sommario
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.
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.
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.
per un principiante come me, potete guidare come poter modificare i limiti alla voce php.ini e altro, in pratica in riferimento alla voce ULTIMI RITOCCHI
Ciao Emanuel,
ti è sufficiente fare copia incolla ed eseguire i comandi scritti e premere invio.
Basta aprire la shell del terminale (Command Line) di Ubuntu.
Saluti
usando ubuntu server su promox, non mi permette di copiare il codice da windows e incollarlo nel terminale ubuntu. Mi tocca scrivere tutto a mano..
Ciao Emanuele, utilizza SSH ed hai risolto.
Saluti