In questa guida vi spiegherò dettagliatamente come installare e configurare Nextcloud 12 su un computer con Ubuntu 16.04 o superiori.
Per saperne di più su Nextcloud vi invito a vedere il precedente articolo Nextcloud – Il Cloud personale e open source.
Prerequisiti
- Una macchina fisica o virtuale con Ubuntu 16.04 o superiori (probabilmente è compatibile anche Ubuntu 15.04-15.10 ma non l’ho testato), con almeno 128MB di ram (512MB consigliati) e spazio disco sufficiente per contenere i vostri files.
- WinSCP o FileZilla, vi saranno molto utili per la creazione e modifica dei file di testo. In alternativa è possibile editare i files dalla riga di comando con nano o vim.
- Circa 30 minuti del vostro tempo, o anche 20, dipende dalla velocità.
Tutti i comandi qui inseriti possono essere utilizzati come root oppure come un altro utente non amministratore ma con il prefisso sudo davanti al comando.
Installazione dei pacchetti
Utilizzate il seguente comando per installare i pacchetti necessari.
apt-get install apache2 ffmpeg libapache2-mod-php7.0 mariadb-server php-apcu php-imagick php7.0 php7.0-bz2 php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-xml php7.0-zip php7.0-gd zip
Configurazione di Apache
Eseguiamo i seguenti comandi dalla shell per abilitare i relativi moduli di Apache:
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod ssl
Da WinSCP o FileZilla posizioniamoci in /etc/apache2/sites-available e creiamo un nuovo file con un nome a piacere, ad esempio nextcloud.conf.
Apriamo il file con il blocco note di Windows (io consiglio Notepad++) e all’interno inseriamo il contenuto del seguente file: nextcloud_virtualhost.
Per abilitare il virtual host appena creato diamo il seguente comando
ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/
Infine rimuoviamo il virtual host già presente (quello inserito durante l’installazione di apache) con il comando
rm /etc/apache2/sites-enabled/000-default.conf
Una volta finito, riavviamo Apache con il seguente comando:
service apache2 restart
Configurazione di MySQL
Per prima cosa eseguiamo il comando mysql_secure_installation
. Per le istruzioni su come rispondere alle domande, vedete l’articolo Come installare LAMP su Ubuntu 16.
Digitiamo il seguente comando per entrare nella console di MySQL:
mysql -uroot -p
Quindi i seguenti comandi per creare un utente con relativo database, assegnando i permessi del db all’utente.
Sostituite il nome e la password con quelli a vostra scelta
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost';
Successivamente, con WinSCP o FileZilla apriamo il file /etc/mysql/mariadb.conf.d/50-server.cnf.
Subito sotto la parola [mysqld]
inseriamo la riga
transaction-isolation = READ-COMMITTED
innodb_large_prefix=on
innodb_file_format=barracuda
innodb_file_per_table=true
Il risultato dovrebbe essere simile a questo:

Quindi riavviamo il servizio MySQL con il comando
service mysql restart
Successivamente apriamo una shell MySQL con il comando mysql -uroot -p
e diamo il comando
SHOW VARIABLES LIKE 'tx_isolation';
Se il risultato è come questo, allora la modifica è stata eseguita.
Configurazione di Nextcloud
Prima di configurare Nextcloud, scarichiamolo dal sito ufficiale:
wget https://download.nextcloud.com/server/releases/nextcloud-12.0.0.zip
Quindi scompattiamolo in /var/www
unzip nextcloud-12.0.0.zip -d /var/www
Con WinSCP o Filezilla creiamo il file /root/script_nextcloud.sh e all’interno inseriamo il seguente contenuto: nextcloud_permissions.
Questo script ci servirà per impostare correttamente i permessi sulla cartella /var/www/nextcloud e creerà anche alcune cartelle mancanti.
Nel caso il percorso della cartella dovesse essere diverso da quello nello script, dovrete modificarlo.
Diamo il comando per rendere eseguibile lo script ed eseguiamolo:
chmod +x /root/script_nextcloud.sh
/root/script_nextcloud.sh
Bene, a questo punto digitando http://<indirizzo_ip> dovreste già vedere il wizard di Nextcloud.
Wizard di configurazione
Ora vi illustrerò come eseguire la prima configurazione iniziale di Nextcloud 12.
1. Creazione dell’utente amministratore
Come potete vedere la prima parte serve a definire il nome e la password dell’utente amministratore.
Io vi consiglio di usare una password molto robusta, di almeno 12 caratteri con lettere maiuscole, minuscole, numeri e simboli.
2. Definizione della cartella dei dati
In questo campo è necessario definire dove i nostri dati che andremmo a caricare saranno salvati.
Di default Nextcloud ci propone una directory, ma la documentazione ufficiale consiglia di non usare quel percorso per motivi di sicurezza.
Io vi consiglio di usare un percorso come /opt/nextcloud/data.
Se desiderate utilizzare un percorso diverso da quello consigliato, dovrete creare a mano la cartella con i seguenti comandi:
mkdir /opt/nextcloud/data
chown -R www-data:www-data /opt/nextcloud/data
3. Definizione della connessione al database
Nelle 4 caselle come mostrato nell’immagine dovrete inserire in questo ordine lo username di MariaDB creato in precedenza, la relativa password e il nome del database. Nell’ultimo campo potete lasciare localhost.
Quando avrete inserito tutti i dati cliccate sul tasto Termina configurazione.
Ecco, avete finito l’installazione!
Vi attenderà la seguente pagina di benvenuto:
Se avete problemi vi invito a scrivere un commento.
Articolo pubblicato il 20/07/2017
Ottimo articolo Marco, ne seguiranno altri su Nextcloud ?
Non funziona….quando provo a connettermi mi dice pagina non trovata. Ho eseguito tutti i passaggi… potrebbe essere un problema di apache2?!?!
Sì, potrebbe.
Controlla in quale cartella hai scompattato l’archivio di Nextcloud.
Controlla il file di log in /var/log/apache2/error.log
Ciao, articolo interessantissimo e soprattutto ben spiegato, una difficoltà, quando arrivo a lanciare il comando /root/script_nextcloud.sh, il terminale mi restituisce questo messaggio:
Creating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess
non capisco se l’output postato è corretto, io credo di no perchè dopo provo ad inserire l’indirizzo ip con https e mi da pagina non trovata invece se metto http mi appare la pagina di apache
Sì, è normale perchè la guida non spiega (prima o poi pubblicherò una guida) come mettere il sito in HTTPS.
spero prestissimoooo
anche io ho lo stesso problema di angelo nella ricerca della pagina
È normale perchè la guida non spiega (prima o poi pubblicherò una guida) come mettere il sito in HTTPS.
piuttosto che
ln -s /etc/apache2/sites-available/nextcloud /etc/apache2/sites-enabled/
andrebbe messo
ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/
Hai ragione, ora lo correggo
Ciao!
Grazie per l articolo davvero semplice e funzionale. Nextcloud é davvero fantastico,l’ho installato su un piccolo raspberry pi3 b+ ma non riesco a configurare il mio hard disk esterno ssd come “storage” potresti aiutarmi?.
Grazie.
Carlo