Ricerca nel sito web

Come installare Nextcloud su Rocky Linux


Su questa pagina

  1. Prerequisiti
  2. Installazione del server web Apache/Httpd
  3. Installazione di PHP su Rocky Linux
  4. Installazione e configurazione di MariaDB
  5. Creazione del database per Nextcloud
  6. Scarica il codice sorgente di Nextcloud
  7. Abilita il modulo Apache/Httpd mod_ssl
  8. Generazione di SSL Letsencrypt con Certbot
  9. Impostazione dell'host virtuale Apache per Nextcloud
  10. Installazione di Nextcloud
  11. Ottimizzazione delle prestazioni di Nextcloud
  12. Conclusione

Nextcloud è un software gratuito e open source che ti consente di creare servizi di file hosting come Dropbox, Google Drive o Mega.nz. È stato creato dallo sviluppatore originale di owncloud Frank Karlitschek. Nel 2016 crea un fork del progetto Owncloud e crea un nuovo progetto con il nome \Nextcloud\.

A questo punto, il progetto Nextcloud cresce rapidamente e diventa più di un semplice software di file hosting. Con il supporto di molti plugin, Nextcloud diventa un tale software di collaborazione. Puoi installare plug-in per la gestione di progetti, videoconferenze, editing collaborativo, prendere appunti, client di posta elettronica, ecc.

In questa guida imparerai come installare Nextcloud su Rocky Linux 8.4. Installerai Nextcloud sotto lo stack LAMP (Linux, Apache2/httpd, MySQL/MariaDB e PHP).

Prerequisiti

  • Un server Rocky Linux. Assicurarsi che tutti i pacchetti siano aggiornati all'ultima versione.
  • Un utente con privilegi di root. Questo utente otterrà i privilegi di root tramite il comando sudo.

Installazione del server web Apache/Httpd

Inizialmente, installerai il server Web Apache o httpd sul server Rocky Linux.

1. Eseguire il comando dnf di seguito per installare il server web httpd.

sudo dnf install httpd

Digita \y\ e premi \Invio\ per confermare e installare i pacchetti httpd.

2. Se l'installazione è completa, abilitare e avviare il servizio httpd utilizzando il seguente comando.

sudo systemctl enable httpd
sudo systemctl start httpd

Il comando \systemctl enable\ abiliterà l'avvio del servizio ad ogni avvio.

3. Successivamente, eseguire il comando seguente per verificare il servizio httpd.

sudo systemctl status httpd

E otterrai un risultato simile come di seguito.

Come si vede nello screenshot in alto, httpd è attivo e in esecuzione.

Installazione di PHP su Rocky Linux

Per ora, Nextcloud ha bisogno di PHP 7.4 o superiore per l'installazione. Ora installerai PHP 7.4 dal repository remi.

1. Eseguire il seguente comando per aggiungere epel e remi Repository

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Digita \y\ e premi \Invio\ per aggiungere il repository epel e remi.

Al termine dell'installazione, verificare il repository epel e Remi utilizzando il seguente comando.

sudo dnf repolist

Vedrai il repository epel e remi nell'elenco dei repository.

2. Successivamente, reimpostare il modulo di repository predefinito PHP. Quindi abilitare il modulo per PHP 7.4 dal repository remi.

Esegui il seguente comando per reimpostare il repository del modulo php predefinito.

sudo dnf module reset php

Nel processo, digita \y\ e premi \Invio\ per aggiungere il repository remi della chiave gpg.

Successivamente, esegui il comando seguente per abilitare il modulo php dal repository remi.

sudo dnf module enable php:remi-7.4

Digita \y\ per confermare e premi \Invio\ per continuare. Ora sei pronto per installare PHP e tutte le estensioni per l'installazione di WordPress.

3. Esegui il seguente comando per installare php con alcune estensioni necessarie.

sudo dnf install php php-ctype php-curl php-gd php-iconv php-json php-libxml php-mbstring php-openssl php-posix php-session php-xml php-zip php-zlib php-pdo php-mysqlnd php-intl php-bcmath php-gmp php-imagick php-apcu

4. Al termine dell'installazione di PHP, modificare la configurazione \php.ini\ utilizzando nano editor.

nano /etc/php.ini

Modificare il valore predefinito con la configurazione seguente.

file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
display_errors = Off
date.timezone = Europe/Amsterdam

Premere \Ctrl+x\ e digitare \Y\ per salvare la configurazione ed uscire.

La configurazione importante che devi conoscere:

  • Per la produzione Nextcloud, hai bisogno di \memory_limit\ più di 512 MB.
  • L'opzione \upload_max_filesize\ ti consente di impostare la dimensione massima di caricamento sul tuo server Nextcloud.
  • L'opzione \post_max_size\ deve essere maggiore dell'opzione \upload_max_filesize\.
  • L'opzione \date.timezone\ deve corrispondere all'ora locale del sistema \/etc/localtime\.
  • Aumenta \max_execution_time\ a seconda del carico del tuo server.

5. Successivamente, modifica la directory di lavoro in \/etc/php.d/\ e modifica la configurazione \10-opcache.ini\ utilizzando l'editor nano.

cd /etc/php.d/
nano 10-opcache.ini

Aggiungi la seguente configurazione per abilitare il plugin PHP opecache.

opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

Premere il pulsante \Ctrl+x\ e digitare \Y\ per salvare la configurazione e uscire.

6. Per applicare una nuova configurazione PHP, riavviare il servizio httpd utilizzando il seguente comando.

sudo systemctl restart httpd

Installazione e configurazione di MariaDB

Per questa fase, installerai il server del database mariadb, proteggerai la distribuzione di mariadb e creerai un nuovo database e utente per Nextcloud.

1. Per installare il server database mariadb, eseguire il comando seguente.

sudo dnf install mariadb mariadb-server

Attendere l'installazione di mariadb.

2. Una volta completata l'installazione, abilitare e avviare il servizio mariadb utilizzando il seguente comando.

sudo systemctl enable mariadb
sudo systemctl start mariadb

4. Il mariadb sarà attivo e in esecuzione, eseguire il seguente comando per verificare il servizio mariadb.

sudo systemctl status mariadb

Se il servizio mariadb è in esecuzione, otterrai un output simile al seguente.

5. Successivamente, è necessario proteggere la distribuzione di mariadb impostando la password di root per mariadb e rimuovendo alcune configurazioni predefinite. Per farlo, puoi utilizzare lo strumento da riga di comando mysql_secure_installation, che è incluso nell'installazione predefinita di mariadb.

Eseguire il comando \mysql_secure_installation\ di seguito.

mysql_secure_installation

Al primo, ti verrà chiesto di impostare la password di root mariadb.

Digita la tua forte password di root mariadb e ripeti, quindi premi \Invio\ per continuare.

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Ora digita \Y\ e premi \Invio\ per rimuovere l'utente anonimo predefinito dal server mariadb.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Successivamente, disabilita l'accesso remoto per l'utente root predefinito. Digita \Y\ e premi \Invio\ per continuare.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

Digita nuovamente \Y\ per rimuovere il database predefinito \test\ e premi \Invio\.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

E l'ultimo, digitare di nuovo \Y\ per ricaricare tutti i privilegi delle tabelle per applicare una nuova configurazione.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Ora il processo è completo e vedrai il seguente output.

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Creazione di database per Nextcloud

1. accedere alla shell mariadb utilizzando il comando mysql di seguito.

mysql -u root -p

2. Ora esegui la seguente query mysql per creare un nuovo database \nextcloud_db\.

CREATE DATABASE netxcloud_db;

3. Eseguire la seguente query per creare un nuovo utente del database \nextuser\. Cambia la \strongpassword\ con la tua password sicura.

CREATE USER  IDENTIFIED BY 'StrongPassword';

4. Consentire all'utente \nextuser\ di accedere e scrivere il \nextcloud_db\ utilizzando la seguente query.

GRANT ALL PRIVILEGES ON netxcloud_db.* TO ;

5. Ora ricarica tutti i privilegi delle tabelle per applicare la nuova configurazione del database.

FLUSH PRIVILEGES;

Quindi puoi digitare \esci\ e premere \Invio\ per uscire dalla shell mariadb.

Scarica il codice sorgente di Nextcloud

1. Cambia la directory di lavoro in \/var/www\ e scarica l'ultima versione del codice sorgente di Nextcloud utilizzando il comando wget come di seguito.

cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-22.1.0.zip

2. Estrai il codice sorgente Nextcloud \nextcloud-xx.zip\ e otterrai una nuova directory \nextcloud\, quindi cambia il proprietario della directory \nextcloud\ in \apache\ user.

unzip nextcloud-22.1.0.zip
chown -R apache:apache nextcloud

Ora sei pronto per configurare l'host virtuale httpd per Nextcloud.

Abilita il modulo Apache/Httpd mod_ssl

Per questo tutorial, installerai Nextcloud e lo proteggerai con SSL da Letsencrypt. Quindi è necessario abilitare mod_ssl per il server httpd su Rocky Linux.

1. Installa il pacchetto \mod_ssl\ usando il comando dnf qui sotto.

sudo dnf install mod_ssl mod_http2

2. Successivamente, genera l'SSL predefinito per localhost utilizzando il comando openssl di seguito. Ma se hai già i certificati \/etc/pki/tls/private/localhost.key\ e \/etc/pki/tls/certs/localhost.crt \, puoi saltare questa fase.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

Puoi semplicemente premere invio per tutte le domande perché questo certificato verrà utilizzato solo per localhost, non per il nome di dominio WordPress.

3. Ora esegui il seguente comando per assicurarti che mod_ssl sia disponibile sul server web httpd.

apachectl -M | grep ssl

Se hai l'output come \ssl\, allora il mod_ssl è abilitato. Altrimenti, otterrai un output vuoto.

Generazione SSL Letsencrypt con Certbot

In questa fase, installerai lo strumento cerbot e genererai i certificati SSL per l'installazione di WordPress. Genererai SSL Letsencrypts con il plugin webroot.

1. Eseguire il seguente comando per installare lo strumento certbot per la generazione di SSL Letsencrypt.

sudo dnf install certbot

Attendere il processo di installazione.

2. Una volta completata l'installazione, creare una nuova directory per l'autorizzazione letsencrypt utilizzando i seguenti comandi.

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

3. Successivamente, modificare la directory di lavoro in \/etc/httpd/conf.d/\ e creare una nuova configurazione \well-known.conf\ utilizzando l'editor nano.

cd /etc/httpd/conf.d/
nano well-known.conf

Aggiungere le seguenti configurazioni.

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

Premi \Ctrl+x\ e digita \y\ per salvare e uscire.

4. Ora eseguire i seguenti comandi per verificare la configurazione httpd e riavviare il servizio httpd.

apachectl configtest
sudo systemctl restart httpd

Se non hai errori, sei pronto per generare SSL Letsencrypt con il plugin webroot.

5. Prima di generare SSL Letsencrypt, assicurati che il tuo nome di dominio sia risolto nell'indirizzo IP del server. Successivamente, puoi generare SSL Letsencrypt con il plug-in webroot eseguendo il comando certbot di seguito. Inoltre, cambia l'indirizzo e-mail e il nome di dominio con il tuo.

sudo certbot certonly --agree-tos --email 

Al termine del processo, i certificati SSL saranno disponibili nella directory \/etc/letsencrypt/live/files.domain.com/\.

Configurazione dell'host virtuale Apache per Nextcloud

In questo passaggio, aggiungerai una nuova configurazione host virtuale apache/httpd per Nextcloud.

1. Modificare la directory di lavoro in \/etc/httpd/conf.d\ e creare una nuova configurazione \nextcloud.conf\ utilizzando l'editor nano.

cd /etc/httpd/conf.d/
nano nextcloud.conf

Modifica il nome di dominio dettagliato e la directory del percorso SSL con i tuoi e incolla la configurazione nel file \nextcloud.conf\.

<VirtualHost *:80>
    ServerName files.domain.com
    ServerAlias www.files.domain.com

    # auto redirect HTTP to HTTPS
    Redirect permanent / https://files.domain.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName files.domain.com
    ServerAlias www.files.domain.com
 
    DocumentRoot /var/www/nextcloud/

    Protocols h2 http/1.1

    # auto redirect www to non-www
    <If "%{HTTP_HOST} == 'www.files.domain.com'">
        Redirect permanent / https://files.domain.com/
    </If>

    # log files
    ErrorLog /var/log/httpd/files.domain.com-error.log
    CustomLog /var/log/httpd/files.domain.com-access.log combined

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/files.domain.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/files.domain.com/privkey.pem

    # HSTS
    <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
    </IfModule>

    <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All

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

        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>
</VirtualHost>

Premere \Ctrl+x\ e digitare \Y\ per salvare la configurazione ed uscire.

3. Successivamente, eseguire il seguente comando per verificare la configurazione httpd.

sudo apachectl configtest

Se non ricevi errori, riavvia il servizio httpd utilizzando il comando seguente.

sudo systemctl restart httpd

Ora sei pronto per l'installazione di Nextcloud tramite il browser web.

Installazione di Nextcloud

Se tutta la relativa configurazione del server è completa, puoi accedere alla tua installazione Nextcloud con il browser web.

1. Apri il tuo browser web e digita l'indirizzo URL della tua installazione Nextcloud.

Ora verrai reindirizzato alla connessione HTTPS sicura e otterrai la pagina come segue.

  • Nella \Sezione Crea un account amministratore\, digita un nuovo nome utente e una nuova password per il tuo amministratore.
  • Per la sezione \Cartella dati\, lasciala come predefinita per ora.
  • Nella sezione \Configura il database\, scegli \MySQL/MariaDB\ e digita i dettagli della configurazione del database
  • Inoltre, puoi installare le app consigliate selezionando l'opzione della casella. Oppure deseleziona l'opzione della casella se non lo desideri.

Successivamente, puoi fare clic sul pulsante \Termina installazione\.

2. Al termine del processo di installazione, vedrai la dashboard Nextcloud predefinita come di seguito.

3. Ora fai clic sul menu \File\ e vedrai l'elenco di file e cartelle del dashboard utente.

4. Per accedere alla pagina amministrativa, fare clic sul profilo utente in alto e selezionare \Impostazioni\.

Nella sezione \Amministrativa\, puoi modificare la configurazione predefinita di Nextcloud.

5. Per aggiungere nuovi plug-in o app, puoi fare clic sul profilo utente in alto e selezionare \App\.

Ora otterrai la pagina come segue.

Scegli la categoria di plug-in che fa per te, quindi fai clic sul pulsante \Scarica e attiva\. Successivamente, fai clic su \Abilita\ per attivare l'app o il plug-in.

Di seguito è riportato lo screenshot dopo aver abilitato il tema Nextcloud Breeze Dark.

Ottimizzazione delle prestazioni di Nextcloud

Dopo aver installato Nextcloud, puoi fare ulteriori passaggi per aumentare le prestazioni di Nextcloud abilitando la cache della memoria locale e impostando un cronjob per Nextcloud stesso.

1. Nella sezione superiore dell'installazione di PHP, hai già impostato PHP per la memorizzazione nella cache. Per abilitare la memorizzazione nella cache su Nextcloud, modifica la configurazione di Nextcloud \config.php\.

Cambia la directory di lavoro in \/var/www/nextcloud/config\ e modifica la configurazione \config.php\ usando nano editor.

cd /var/www/nextcloud/config/
nano config.php

Aggiungi la seguente configurazione all'interno dell'array ( .. ); staffa come di seguito

<?php
$CONFIG = array (
....
....
....
  # Additional configuration
  'memcache.local' => '\OC\Memcache\APCu',
);

Ora premi il pulsante \Ctrl+x\ e digita \y\ per salvare la configurazione ed uscire.

2. Un sistema Nextcloud deve eseguire alcune attività in background su base regolare e senza alcuna interazione utente/amministratore. Per fare ciò, puoi utilizzare il cronjob per le attività di pianificazione delle attività Nextcloud.

Su Rocky Linux, l'utente httpd predefinito è \apache\. Crea un nuovo cronjob per l'utente \apache\ utilizzando il comando seguente.

crontab -u apache -e

Aggiungere la seguente configurazione.

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

Nota sulla configurazione e l'uscita.

Configurazione di Cronjob che devi conoscere:

  • Questa configurazione di cronjob consente all'utente \apache\ di eseguire lo script PHP \/var/www/nextcloud/cron.php\ ogni 5 minuti.

Per verificare la configurazione di cronjob, puoi eseguire il seguente comando.

crontab -u apache -l

Se la tua configurazione ha successo, otterrai la configurazione in cima come output. Altrimenti, otterrai un risultato vuoto.

Conclusione

Congratulazioni! Hai installato con successo Nextcloud su Rocky Linux 8.4. Il server Nextcloud è in esecuzione sotto lo stack LAMP con SSL abilitato. Inoltre, l'installazione di Nextcloud è in esecuzione con la memorizzazione nella cache abilitata con PHP APC e le estensioni opcache.