Come installare Nextcloud su Debian 11
Questo tutorial esiste per queste versioni del sistema operativo
- Debian 11 (Bullseye)
- Debian 9 (Stretch)
Su questa pagina
- Prerequisiti
- Ottieni root e aggiorna i repository
- Installazione del server Web Apache
- Installazione e configurazione di PHP
- Installazione e configurazione di MariaDB
- Creazione di database e utente per Nextcloud
- Scarica il codice sorgente di Nextcloud
- Generazione SSL Letsencrypt
- Configura l'host virtuale Apache per Nextcloud
- Installazione di Nextcloud
- Ottimizzazione delle prestazioni di Nextcloud
- 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.