Ricerca nel sito web

Come installare Nextcloud su Debian 11


Questo tutorial esiste per queste versioni del sistema operativo

  • Debian 11 (Bullseye)
  • Debian 9 (Stretch)

Su questa pagina

  1. Prerequisiti
  2. Ottieni root e aggiorna i repository
  3. Installazione del server Web Apache
  4. Installazione e configurazione di PHP
  5. Installazione e configurazione di MariaDB
  6. Creazione di database e utente per Nextcloud
  7. Scarica il codice sorgente di Nextcloud
  8. Generazione SSL Letsencrypt
  9. Configura l'host virtuale Apache per Nextcloud
  10. Installazione di Nextcloud
  11. Ottimizzazione delle prestazioni di Nextcloud
  12. Conclusione

Nextcloud è un software open source per la creazione di archivi di file pubblici e privati. Ti consente di creare i tuoi servizi self-hosted come Dropbox, Google Drive o Mega.nz. Originariamente, è stato creato dallo sviluppatore originale di owncloud Frank Karlitschek. Nel 2016 esegue il fork del progetto Owncloud e crea un nuovo progetto con il nuovo nome \Nextcloud\

A questo punto, il progetto Nextcloud sta crescendo rapidamente e diventando qualcosa di più di un software di file hosting, è più simile a una piattaforma di sincronizzazione di file e collaborazione sui contenuti. Supportato da molti plug-in, Nextcloud diventa un software di collaborazione così potente. 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 sull'ultimo Debian 11 Bullseye. Installerai Nextcloud sotto lo stack LAMP (Linux, Apache2/httpd, MySQL/MariaDB e PHP).

Prerequisiti

  • Un server Debian 11. Assicurarsi che tutti i pacchetti siano aggiornati all'ultima versione.
  • Un utente root o un utente con privilegi root. Questo utente verrà utilizzato per l'installazione di nuovi pacchetti e la modifica delle configurazioni di sistema.

Ottieni root e aggiorna i repository

Innanzitutto, esegui il seguente comando per ottenere i privilegi di root.

1. Se hai installato sudo, esegui il comando sudo qui sotto.

sudo su

Ora digita la password di accesso per il tuo utente.

2. Se non si dispone del pacchetto sudo, eseguire il comando su come di seguito

su

Ora digita la tua password di root e premi Invio.

3. Successivamente, aggiorna tutti i tuoi repository Debian usando il comando apt di seguito.

apt update

Installazione del server Web Apache

Dopo aver aggiornato i repository Debian, installerai un server web Apache e abiliterai alcuni moduli Apache per Nextcloud.

1. Eseguire il comando apt di seguito per installare il server Web Apache.

apt install apache2

Digitare y e premere Invio per continuare l'installazione.

2. Se l'installazione è completa, controllare il servizio Apache utilizzando il seguente comando.

systemctl is-enabled apache2
systemctl status apache2

Vedrai l'output abilitato, il che significa che il servizio Apache verrà avviato automaticamente all'avvio del sistema. E lo stato attuale del servizio Apache, è attivo (in esecuzione).

3. Successivamente, abilita i moduli Apache ssl, riscrittura e intestazioni eseguendo il comando a2enmod di seguito.

a2enmod ssl rewrite headers

Di seguito è riportato l'output che otterrai.

4. Successivamente, eseguire il seguente comando per riavviare il servizio Apache.

systemctl restart apache2

Verranno applicati nuovi moduli Apache, verificare tali moduli utilizzando il comando apachectl di seguito.

apachectl -M | egrep "ssl|rewrite|headers"

Vedrai un output simile a quello di seguito.

Installazione e configurazione PHP

Per questa guida, distribuirai Nextcloud con l'ultima versione stabile di PHP 8.0.

Per impostazione predefinita, il repository Debian fornisce pacchetti per PHP 8.0. Tuttavia, Nextcloud richiede alcuni pacchetti PHP aggiuntivi che possono essere installati da un repository di terze parti. E aggiungerai un nuovo repository al tuo sistema Debian.

1. Eseguire il comando seguente per aggiungere un repository PHP per il sistema Debian.

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main"\
| sudo tee /etc/apt/sources.list.d/sury-php.list

Scarica la chiave GPG nella directory /etc/apt/trusted.gpg.d.

curl -o /etc/apt/trusted.gpg.d/sury-php8.gpg https://packages.sury.org/php/apt.gpg

Ora esegui di nuovo il comando apt update per aggiornare tutti i repository.

apt update

2. Installa i pacchetti PHP e i moduli PHP aggiuntivi per Nextcloud utilizzando il comando apt di seguito.

apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu

Successivamente, esegui nuovamente il comando apt per installare alcuni pacchetti aggiuntivi.

apt install -y libmagickcore-dev

I pacchetti libmagickcore-dev sono necessari a php-imagick per l'elaborazione delle immagini SVG su Nextcloud.

3. Se l'installazione di tutti i pacchetti è completa, modificare la directory di lavoro in /etc/php/8.0/apache2 e modificare la configurazione php.ini utilizzando nano.

cd /etc/php/8.0/apache2/
nano php.ini

Per la distribuzione nextcloud di base, modifica le opzioni predefinite utilizzando la seguente configurazione.

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
output_buffering = Off

Rimuovere il commento dall'opzione zend_extension=opcache per caricare l'estensione opcache.

zend_extension=opcache

Passare alla sezione [opcache] e aggiungere la seguente configurazione.

[opcache]
...
....
.....
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

Salvare la configurazione premendo il pulsante Ctrl+x e digitare y, quindi premere Invio per uscire.

4. Ora riavvia il servizio Apache per applicare le nuove modifiche utilizzando il comando seguente.

systemctl restart apache2

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.

apt install mariadb-server mariadb-client

Digita y per confermare e installare i pacchetti mariadb.

2. Una volta completata l'installazione, controllare il servizio mariadb utilizzando il seguente comando.

systemctl is-enabled mariadb
systemctl status mariadb

Il servizio mariadb è attivo e in esecuzione ed è abilitato per l'avvio automatico all'avvio del sistema.

3. 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 inserire la password di root mariadb. Basta premere Invio per continuare.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Digitare Y per abilitare l'autenticazione unix_socket per l'utente root.

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
 ... Success!

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

Change the 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 e utente 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 nextcloud_db;

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

CREATE USER  IDENTIFIED BY 'StrongPassword';

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

GRANT ALL PRIVILEGES ON nextcloud_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/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-22.1.1.zip

2. Ora installa il pacchetto unzip usando il seguente comando.

apt install unzip

3. Quindi, estrai il codice sorgente di Nextcloud \nextcloud.zip\ e otterrai una nuova directory \nextcloud\, quindi cambia il proprietario della directory \nextcloud\ in \www-data\ utente .

unzip nextcloud-22.1.0.zip
chown -R www-data:www-data nextcloud

Ora sei pronto per generare SSL Letsencrypt e configurare l'host virtuale Apache per Nextcloud.

Generazione SSL Letsencrypt

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

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

apt install certbot

Digitare y e premere Invio per continuare l'installazione.

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

mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt

3. Successivamente, modificare la directory di lavoro in \/etc/apache2/conf-available/\ e creare una nuova configurazione \well-known.conf\ utilizzando nano.

cd /etc/apache2/conf-available/
nano well-known.conf

Copia e incolla la seguente configurazione.

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>

Premere \Ctrl+x\ e digitare \y\ e premere Invio per salvare la configurazione e uscire.

Ora attiva la nuova configurazione creando un collegamento simbolico del file well-known.conf alla directory conf-enabled usando il comando ln qui sotto.

ln -s /etc/apache2/conf-available/well-known.conf /etc/apache2/conf-enabled/

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

apachectl configtest
systemctl restart apache2

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  --webroot -w /var/lib/letsencrypt/ -d files.domain-name.io

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

Configura Apache Virtual Host per Nextcloud

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

1. Modificare la directory di lavoro in \/etc/apache2/sites-available/\ e creare una nuova configurazione \nextcloud.conf\ utilizzando nano.

cd /etc/apache2/sites-available/
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-name.io
    ServerAlias www.files.domain-name.io

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

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

    Protocols h2 http/1.1

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

    # log files
    ErrorLog /var/log/apache2/files.domain-name.io-error.log
    CustomLog /var/log/apache2/files.domain-name.io-access.log combined

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/files.domain-name.io/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/files.domain-name.io/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\, quindi premere Invio per salvare la configurazione e uscire.

2. Ora attiva la configurazione dell'host virtuale nextcloud.conf eseguendo il seguente comando.

a2ensite nextcloud.conf

3. Ora verifica la nuova configurazione di Apache e assicurati di non avere errori, quindi riavvia il servizio Apache.

apachectl configtest
systemctl restart apache2

Installazione 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.

https://files.nome-dominio.io

Crea il tuo primo utente amministratore per Nextcloud e la directory dei dati è scrivibile dall'utente www-data.

2. Scorrere la pagina fino in fondo, digitare i dettagli nome database, utente e password. Per l'opzione Installa le app consigliate, deselezionala per velocizzare l'installazione. Quindi fare clic sul pulsante Termina installazione per installare Nextcloud.

3. Se l'installazione ha esito positivo, vedrai la dashboard di Nextcloud come di seguito.

4. Ora fai clic sull'icona dell'utente in alto a destra e fai clic sul menu Impostazioni. Nella sezione Amministrazione, fare clic su Panoramica.

  • Nella sezione Avvisi di sicurezza e configurazione, troverai alcune raccomandazioni che devi fare, a seconda del tuo ambiente di installazione.
  • Nella sezione Versioni, vedrai il ramo corrente della tua installazione Nextcloud.

5. Successivamente, fare clic sul menu Sistema nella parte inferiore della sezione Amministrazione.

Vedrai i dettagli del tuo ambiente, il carico del sistema, lo stato dello spazio su disco, lo stato della memoria, lo stato della rete, ecc.

6. Come detto prima, il nextcloud è diventato più di una semplice sincronizzazione dei file. Con il supporto di app/plugin aggiuntivi, diventa una tuta di collaborazione.

Nell'icona del profilo in alto a destra, fai clic sul menu App e vedrai l'app store nextcloud come di seguito.

Scegli le app che desideri installare, quindi fai clic sul pulsante Scarica e attiva per installare nuove app.

7. Di seguito è riportata la visualizzazione predefinita della dashboard utente di Nextcloud. Puoi estendere le funzionalità della tua dashboard installando plug-in aggiuntivi.

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\, quindi premi Invio 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.

Sul sistema Debian Linux, l'installazione predefinita di apache è in esecuzione sotto l'utente è \www-data\. Crea un nuovo cronjob per l'utente \www-data\ utilizzando il comando seguente.

crontab -u www-data -e

Se hai più editor sul tuo sistema, scegli l'editor come tuo comodo utilizzo. Per questa guida, useremo un nano editor.

Aggiungere la seguente configurazione.

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

Salva la configurazione ed esci.

Configurazione di Cronjob che devi conoscere:

  • Questa configurazione di cronjob consente all'utente \www-data\ 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 www-data -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 Debian 11 Bullseye. 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.