Nextcloud è una suite software di applicazioni per archiviare e sincronizzare file e dati su più dispositivi. È una soluzione completamente locale per condividere e collaborare su documenti, gestire il calendario e inviare e ricevere e-mail.
Nextcloud ti offre il controllo e la protezione dei tuoi dati facilitando la comunicazione. Può consentire la produttività in quanto è possibile accedere, sincronizzare e condividere i dati esistenti su un'unità FTP su diversi dispositivi collegati a casa o in ufficio. Inoltre, la privacy dei dati è fondamentale e l'esecuzione di un server Nextcloud privato è un ottimo modo per iniziare.
Installazione di un server Nextcloud privato su Fedora 34
Questo tutorial dimostrerà come installare un server Nextcloud privato su un server basato su Fedora 34. Installeremo un server Web Apache, PHP 7.4 e un server e client MariaDB come prerequisiti.
Fase 1. Prerequisiti
Il primo passo è soddisfare i seguenti prerequisiti.
- Un server che esegue Fedora. (Userò Fedora Workstation 34 per la dimostrazione)
- Un utente sudo non root.
- Aggiorna i tuoi pacchetti.
sudo dnf update
- Pacchetti e dipendenze essenziali.
È possibile che sul sistema siano già installati alcuni di questi pacchetti.dnf install wget curl bzip2 nano unzip policycoreutils-python-utils -y
Nota:se hai già configurato alcuni prerequisiti e pacchetti, puoi saltare questi passaggi.
Configurazione del firewall in Fedora
Il primo passaggio consiste nel configurare il firewall da Firewalld tramite la riga di comando. Nota che Firewalld viene preinstallato nei server Fedora.
Controlla lo stato del firewall per assicurarti che sia in esecuzione:
sudo firewall-cmd --state running
Il passaggio successivo è consentire le porte HTTP e HTTPS.
Controlla i servizi e le porte consentiti:
sudo firewall-cmd --permanent --list-services dhcpv6-client mdns samba-client ssh
Consenti porte HTTP e HTTPS.
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent –add-service=https
Controlla di nuovo i servizi e le porte consentiti.
sudo firewall-cmd --permanent --list-services dhcpv6-client http https mdns samba-client ssh
Ricarica il firewall.
sudo systemctl reload firewalld
Installa il server Web Apache
Esegui il comando seguente con i privilegi sudo per installare il server web Apache.
dnf install httpd
Installa PHP
Il prossimo passo è installare PHP e altri moduli aggiuntivi. Se hai già PHP, assicurati che la versione PHP soddisfi i requisiti di Nextcloud.
dnf install php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-pecl-redis php-opcache php-imagick php-zip php-process
Dopo aver installato PHP, abilita e avvia il server web Apache:
systemctl enable --now httpd
Controlla se PHP è in esecuzione.
php -version PHP 7.4.19 (cli) (built: May 4 2021 11:06:37) ( NTS ) Copyright (c) The PHP Group
Installazione del server e del client MariaDB
Il server MariaDB è un sostituto drop-in di MySQL, il che significa che i comandi per eseguire e far funzionare MariaDB e MySQL sono gli stessi.
Controlla se hai un server MariaDB predefinito nel tuo server o installalo eseguendo il comando seguente.
dnf install mariadb mariadb-server
Abilita e avvia il server MariaDB:
systemctl enable --now mariadb
Esegui il comando mysql_secure_installation per proteggere il tuo server MariaDB.
Il comando eseguirà le configurazioni predefinite impostando la password di root, rimuovendo gli utenti anonimi, non consentendo l'accesso come root in remoto e eliminando le tabelle di test.
sudo mysql_secure_installation [sudo] password for tuts: Securing the MySQL server deployment. Enter the password for user root: The 'validate_password' component is installed. >> The subsequent steps will run the existing configuration of the component. >> We are using an existing root password Estimated strength of the password: 100 Change the password for root? ((Press YY | Y for Yes, any other key for No) : >> By default, a MariaDB server installation has an anonymous user >>> is intended only for testing. Remove anonymous users? (Press Y y | Y for Yes, any other key for No) : y Success. Normally, 'root' should only be allowed to connect from 'localhost.' This ensures that someone cannot guess the root password from the network. (ensure you read this policy while installing MariaDB server) Disallow root login remotely? (Press Y y | y Y for Yes, any other key for No) : Y y Success. >>> (removing test database) Remove test database and access to it? (Press Y y | Y for Yes, any other key for No) : y >>> Dropping test database. Success. >>> Removing privileges on test database. Success. Reload privilege tables now? (Press Y y | Y for Yes, any other key for No) : y Success. All done!
Crea un utente e un database dedicati per il server Nextcloud.
mysql -p
Crea il database "nextcloud".
mysql> create database nextcloud;
Crea un utente MySQL dedicato per gestire il database "nextcloud"
mysql> create user 'nextclouduser'@'localhost' identified by 'SeCrEttErCeS';
Concedi tutti i privilegi al database (nextcloud) all'utente (nextclouduser) che abbiamo creato.
mysql> grant all privileges on nextcloud_db.* to 'nextclouduser'@'localhost';
Elimina i privilegi per rendere effettive le modifiche apportate.
mysql> flush privileges;
Esci da MySQL Shell.
mysql> exit;
Configura i permessi di SELinux
Devi configurare SELinux/permissions per funzionare con Nextcloud.
Esegui i seguenti comandi per le impostazioni di base di SELinux. Questi dovrebbero funzionare con la tua installazione.
Assicurati di regolare i percorsi dei file in modo appropriato secondo il tuo sistema. Nel caso fossero diversi.
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/data(/.*)?' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini' semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty/aws/aws-sdk-php/src/data/logs(/.*)?' # restorecon -Rv '/var/www/html/nextcloud/'
Puoi imparare più comandi di SELinux che funzionano con Nextcloud nella configurazione di Nextcloud SELinux.
Passaggio 2. Installazione del server Nextcloud
Il nostro secondo passo è scaricare e installare Nextcloud. Vai al sito Web ufficiale e copia il link per il download del file zip.
Scarica e decomprimi l'archivio Nextcloud usando wget. Assicurati di incollare il link copiato dopo wget nel comando seguente.
wget https://download.nextcloud.com/server/releases/nextcloud-21.0.2.zip

Decomprimi l'archivio nella directory '/var/www/html/'.
unzip nextcloud-21.0.2.zip -d /var/www/html/
Il passaggio successivo consiste nel concedere ad Apache l'accesso in lettura e scrittura all'albero delle directory di Nextcloud:
Crea una cartella di dati nella directory '/var/www/html/nextcloud/'.
mkdir /var/www/html/nextcloud/data
Concedi ad Apache l'accesso in lettura e scrittura utilizzando Chown.
chown -R apache:apache /var/www/html/nextcloud
Passaggio 3. Configurazione del server Nextcloud
Puoi configurare Nextcloud tramite l'interfaccia web o la riga di comando.
Metodo 1:interfaccia web
Accedi a "http://your_server_ip/nextcloud" dal tuo browser web.
Nel nostro caso, il server è in esecuzione dal localhost;
http://localhost/nextcloud or http://127.0.0.0/nextcloud

Metodo 2:riga di comando
Esegui il comando seguente per configurare Nexcloud dalla riga di comando.
sudo -u apache php occ maintenance:install --data-dir /var/www/html/nextcloud/data/ --database "mysql" --database-name "nextcloud" --database-user "nextclouduser" --database-pass "SeCrEttErCeS" --admin-user "admin" --admin-pass "AdMin_PAssWOrd"
Inserisci i dati di accesso dell'amministrazione e configura Nextcloud per il primo utilizzo.

Conclusione
Il limite di memoria PHP consigliato per Nextcloud è 512M. Puoi modificare la variabile memory_limit nel file di configurazione /etc/php.ini e riavviare il tuo servizio httpd.
La sicurezza è fondamentale e dovresti sempre configurare SELinux invece di disabilitarlo. Non è una buona idea disabilitare SELinux. La pratica consigliata è di averla sempre in modalità di esecuzione.
Ciò conclude la nostra dimostrazione sull'installazione di un server Nextcloud privato sul server Fedora 34. Se incontri difficoltà o problemi, sentiti libero di chiedere o aggiungere un commento.