🔧#howto – Installare Nextcloud in CentOS 7

In questo articolo

  1. Features Principali
  2. Installazione su CentOS 7
  3. Scelta del Database
  4. Installare Nextcloud
  5. Configurare Apache e SELinux
  6. Configurare il Firewall
  7. Configurazione finale

Nextcloud è un software server che permette di ospitare su un computer personale un’infrastruttura simile a quella dei servizi di cloud storage. È un’alternativa interessante anche ai tradizionali file server, sia in casa sia in ambito professionale. I vantaggi sono molteplici: l’assenza di  costi mensili, il controllo completo, la gestione dei dati (cosa che non è sempre scontata) e lo spazio limitato solo dal reale quantitativo a disposizione.

Features Principali

Vediamo ora alcune delle principali funzionalitĂ  di Nextcloud:

  • Creazione di utenti multipli e gestione dei privilegi
  • Condivisione tra utenti e tramite url pubblici
  • Accesso tramite web browser, client software e app
  • Sincronizzazione automatica dei files
  • Sicurezza, con possibilitĂ  di 2FA (autenticazione a 2 fattori)
  • Cronologia delle modifiche dei files
  • PossibilitĂ  di modifica dei files online tramite una suite office
  • Estensione delle funzionalitĂ  tramite app da aggiungere a Nextcloud
  • PossibilitĂ  di collegamento con storage esterno (Google Drive, Dropbox, Amazon, e altri)
  • Calendari multipli
  • Talk (dalle versione 13, di default su Nextcloud)

Installazione su CentOS 7

Il primo passo per installare NextCloud  è installare un server web e PHP. PoichĂŠ CentOS 7 viene fornito con PHP 5.4 per impostazione predefinita, ma NextCloud necessita almeno PHP 7, installeremo anche PHP 7 abilitando EPEL . L’ #howto inerente a questo passaggio potete trovarlo QUI, in un articolo proposto un po di tempo fa. Come webserver per questa installazione userò Apache

yum install httpd

Scelta del Database

Quel che adesso segue è la scelta e la configurazione del Database. Come database verrà usato MariaDB, che andremo ad installare insieme al modulo php70w-mysql.

yum install mariadb-server php70w-mysql

Completata l’installazione, avvieremo ed abiliteremo il sevizio mariadb al boot:

# systemctl start mariadb
# systemctl enable mariadb

Il prossimo passo sarĂ  quello di configurare il sistema di gestione del database. Durante la configurazione verrĂ  chiesto di scegliere una password di root, sceglietene dunque una solida.

mysql_secure_installation

Accediamo a MariaDB

mysql -u root -p

e creiamo il database che useremo per Nextcloud:

CREATE DATABASE nextcloud;

che chiameremo nextcloud, ma che può essere chiamato come preferite. Quel che segue e la creazione di un utente che sarĂ  usato per accedere al database. Chiameremo questo utente, per semplicitĂ  esplicativa ‘nc_user’ ed andremo a definire durante questo processo, anche una password da attribuire all’utente:

CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'LA_TUA_PASSWORD';

Non ci resta ora che concedere i privilegi al nuovo utente appena creato:

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;

e uscire da MariaDB digitango CTRL+D.

Installare Nextcloud

Scariachiamo ed estraiamo Nextcloud sul nostro Server:

# cd /var/www/html
# curl -o nextcloud-13-latest.tar.bz2 https://download.nextcloud.com/server/releases/latest-13.tar.bz2
# tar -xvjf nextcloud-13-latest.tar.bz2
# mkdir nextcloud/data
# chown -R apache:apache nextcloud
# rm nextcloud-13-latest.tar.bz2

Dobbiamo ora creare un nuovo file in /etc/httpd/conf.d/ che chiameremo nextcloud.conf . Con l’editor di testo che piĂš vi aggrada, editiamo il file

vi /etc/httpd/conf.d/nextcloud.conf

nel seguente modo:

Configurare Apache e SELinux

Si, molti turorial suggeriscono di disabilitare SELinux perchè è un componente difficile da gestire. Il mio consiglio è però di lasciarlo attivo ed aggiungere le seguenti regole per Nexcloud, oltre ad abilitare il webserver:

# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'
# semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'
# restorecon -Rv '/var/www/html/nextcloud/'

Siccome abbiamo usato MariaDb come database, abbiamo bisogno che Apache (webserver) riesca ad accedervi

# setsebool -P httpd_can_network_connect_db 1

Ora che SELinux è configurato correttamente non ci resta che avviare ed abilitare Apache:

# systemctl start httpd
# systemctl enable httpd

Configurare il Firewall

Se sulla vostra macchina (cosa che si spera) è attivo un firewall, sarà necessario abilitare le porte necessarie a Nextcloud per funzionare, che ovviamente sono la porta 80 per il protocollo http e la 443 per il protocollo https. Se il firewall che state utilizzando (ricordiamoci che siamo su CentOS) è FirewallD

# firewall-cmd --add-service http --permanent
# firewall-cmd --add-service https --permanent
# firewall-cmd --reload

Se invece il firewall utilizzato è IPtables, allora la sintassi sarà:

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Configurazione finale

Un ultimo step è ciò che manca per concludere il lavoro. Collegandoci a http: // IL_TUO_INDIRIZZO_IP / nextcloud / si presenterà la seguente schermata:

dove oltre a creare un’account ed una password amministratore, ci chiederĂ  di inserire i dati che abbiamo generato in fase di creazione del database. Una volta inseriti, clicchiamo su Finisch Setup per completare finalmente la procedura.

 

chat Discuti questo articolo con
help /gentedilinux
centos