# Configurare Nextcloud con NGINX: requisiti, installazione e configurazione

Eseguire Nextcloud su un server NGINX permette un uso efficiente delle risorse e offre ampie possibilità di personalizzazione. Per l’installazione sono richiesti sia un sistema compatibile sia una configurazione adeguata. Inoltre, per integrare correttamente Nextcloud in un ambiente NGINX, è necessario apportare alcune modifiche specifiche.

## Nextcloud e NGINX: una combinazione performante per il cloud

[NGINX](https://www.ionos.it/digitalguide/server/configurazione/nginx-basi-installazione-e-configurazione/) è un software per server web open source che può essere utilizzato anche come [server reverse proxy](https://www.ionos.it/digitalguide/server/configurazione/reverse-proxy-nginx/), load balancer e cache HTTP. L’applicazione è sviluppata in gran parte dal programmatore russo Igor Sysoev e distribuito con licenza BSD (una variante di Unix).

NGINX è progettato per gestire un **numero elevato di connessioni simultanee** grazie a un’architettura asincrona basata su eventi. A differenza dei server web tradizionali, non assegna un processo o thread a ogni richiesta, ma utilizza un **processo master** e diversi processi worker. Il master gestisce la configurazione, mentre i worker rispondono alle richieste dei client.

Usare Nextcloud con NGINX offre diversi vantaggi, soprattutto in contesti server ad alte prestazioni:

- **Uso efficiente delle risorse**: NGINX è in grado di gestire numerose connessioni senza utilizzare troppe risorse.
- **Alta scalabilità**: consente una distribuzione flessibile del carico e l’aggiunta di server.
- **Ampia personalizzazione**: la struttura modulare lo rende adattabile a vari scenari.
- **Prestazioni stabili anche in caso di carico eccessivo**: anche in caso di elevato carico del server, NGINX rimane affidabile e garantisce una disponibilità costante.

N.B. [Nextcloud](https://www.ionos.it/digitalguide/server/tools-o-strumenti/che-cose-nextcloud/) supporta ufficialmente solo Apache 2.x come server web. Pertanto, non fornisce alcun supporto ufficiale per NGINX. L’utilizzo di Nextcloud con NGINX è quindi consigliato principalmente a utenti con esperienza nella configurazione di server web.

## Quali requisiti devono essere soddisfatti per utilizzare Nextcloud tramite NGINX?

Il prerequisito fondamentale è un server compatibile, come Ubuntu o Debian, con almeno **4 GB di RAM** e 2 CPU. Per istanze più complesse con numerose [app Nextcloud](https://www.ionos.it/digitalguide/server/tools-o-strumenti/app-di-nextcloud/) si consigliano più core CPU e più memoria RAM. Deve esserci anche spazio di archiviazione sufficiente per dati e backup.

Per l’installazione è inoltre necessario un **database compatibile come MySQL o MariaDB** e il linguaggio di scripting PHP (versione minima 8.1, consigliata la versione 8.3). Nel database sono memorizzati utenti, plugin, relativi dati e metadati dei file. PHP è essenziale per l’elaborazione e l’esecuzione delle funzioni di Nextcloud. Per poter installare Nextcloud è inoltre necessario un account con permessi di amministratore.

## Nextcloud con NGINX come server web: installazione e configurazione

Prima di installare Nextcloud abbiamo già svolto alcune operazioni preliminari fondamentali. In questa guida partiamo dal presupposto che sia stato installato un server Ubuntu con il sistema operativo e tutte le dipendenze necessarie. Tra queste figurano NGINX come server web, MySQL come database e PHP nella versione 8.3 con tutte le estensioni necessarie.

Abbiamo inoltre installato Certbot per poter configurare facilmente un [certificato SSL con Let’s Encrypt](https://www.ionos.it/digitalguide/siti-web/creare-siti/certificato-ssl-lets-encrypt/). È inoltre necessario disporre di un dominio per poter utilizzare Nextcloud tramite un URL corrispondente invece che tramite un indirizzo IP.

Consiglio Nei nostri articoli correlati scopri come installare [Nextcloud su Ubuntu 22.04](https://www.ionos.it/digitalguide/server/configurazione/nextcloud-ubuntu-2204/) o [Nextcloud su Kubernetes](https://www.ionos.it/digitalguide/server/configurazione/nextcloud-kubernetes/). Inoltre, puoi trovare una guida dettagliata per l’installazione e la configurazione di [Nextcloud su Debian 12](https://www.ionos.it/digitalguide/server/configurazione/nextcloud-su-debian-12/).

### Scaricare e decomprimere Nextcloud

Per prima cosa, crea una cartella denominata “nextcloud”, nella directory utente sul tuo server, nella quale scaricherai i file di installazione di Nextcloud. Puoi farlo manualmente tramite il [changelog di Nextcloud](https://nextcloud.com/changelog/ "Changelog di Nextcloud"), ma è ancora più semplice utilizzando il seguente comando curl:

```bash
mkdir ~/nextcloud && cd ~/nextcloud
curl --output nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-30.0.5.zip
```

N.B. Se installi una versione diversa, assicurati di inserire l’URL corretto per il download del file ZIP.

Decomprimi il file, sposta la cartella in `./var/www` (che funge da directory root del server web) e imposta i permessi dei file. A tal fine, utilizza i seguenti comandi:

```bash
unzip nextcloud.zip && sudo mv nextcloud /var/www/ && sudo chown -R www-data:www-data /var/www/nextcloud
```

### Configurare il database

Per configurare il database MySQL, esegui il comando sudo `sudo mysql_secure_installation`. Digita “y” per impostare la password di root (`VALIDATE PASSWORD`) e “2” per una password complessa (`STRONG`), che potrà essere configurata in seguito. Premi “y” per confermare la password e poi di nuovo per rimuovere gli utenti anonimi, vietare gli accessi remoti, rimuovere il database di prova e ricaricare le tabelle dei privilegi.

Quindi procedi come segue:

1. Entra nel database come utente root con il comando `sudo mysql -u root -p`.
2. Crea il database Nextcloud con `create database nextcloud;`.
3. Crea l’account utente Nextcloud con il comando `create user 'nextcloud'@'localhost' identified by <new_password>;`.
4. Assegna all’account creato i permessi di database con `grant all privileges on nextcloud.* to 'nextcloud'@'localhost';`.
5. Infine, aggiorna i permessi con `flush privileges;` ed esci dalla console del database con il comando `exit`.

Dopo aver configurato correttamente il database, è necessario inserire i dati di accesso (`DB_NAME`, `DB_USER`, `DB_PASSWORD`) nel file di configurazione di Nextcloud. A tal fine, apri il file `./var/www/nextcloud/config/config.php` e aggiungi le relative voci di configurazione:

```txt
'dbtype' => 'mysql',
'dbname' => 'nextcloud',
'dbuser' => 'nextcloud',
'dbpassword' => '<your_password>',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
```

### Disattivare la configurazione predefinita di NGINX

Prima di integrare Nextcloud in NGINX, assicurati che nessun altro file di configurazione sovrascriva l’installazione di Nextcloud. Per impostazione predefinita potrebbe essere presente una configurazione di `default` in `./etc/nginx/sites-enabled/` che impedisce il corretto caricamento di Nextcloud. Questa deve essere rimossa con il seguente comando:

```bash
sudo rm /etc/nginx/sites-enabled/default
```

Successivamente, assicurati che la nuova configurazione per Nextcloud sia attiva con il seguente comando:

```bash
sudo ln -s /etc/nginx/sites-available/dominioesempio.it /etc/nginx/sites-enabled/
```

### Configurare il server NGINX

Per configurare NGINX come server web, è necessario che sia già stato impostato un dominio e che questo sia collegato all’IP del server. Assicurati anche che la configurazione DNS sia corretta. A questo punto, crea il file di configurazione NGINX nella directory `sites-available` utilizzando il [comando Linux sudo](https://www.ionos.it/digitalguide/server/configurazione/comando-sudo-su-linux/) `sudo touch /etc/nginx/sites-available/dominioesempio.it` (come URL abbiamo utilizzato `dominioesempio.it`).

Apri il file di configurazione in un editor di testo come Vim con `sudo vim /etc/nginx/sites-available/dominioesempio.it` e incolla il blocco di codice della sezione “Nextcloud in a subdir of the NGINX webroots” della [pagina web di Nextcloud sulla configurazione NGINX](https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html) in `./etc/nginx/sites-available/dominioesempio.it`.

Poiché il certificato HTTPS viene aggiunto con Certbot, è necessario rimuovere tutte le righe relative a SSL dal file di configurazione NGINX. Certbot esegue la configurazione automatica, quindi non è necessaria alcuna impostazione manuale dettagliata.

### Configurare il certificato SSL con Certbot

Affinché Nextcloud funzioni tramite una connessione HTTPS sicura, è necessario configurare un certificato SSL, in questo caso di Let’s Encrypt. Innanzitutto, è necessario configurare il firewall in modo che le connessioni HTTPS e SSH siano consentite. A tal fine, utilizza il seguente comando sudo:

```bash
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'
```

Quindi, attiva il firewall con `sudo ufw enable` e verifica con `sudo ufw status` che le connessioni siano ora consentite. Successivamente, puoi creare il certificato SSL tramite Certbot:

```bash
sudo certbot --nginx -d dominioesempio.it
```

Inserisci il tuo indirizzo e-mail per ricevere notifiche sul rinnovo dei certificati, accetta i termini e le condizioni e seleziona l’opzione 2 per reindirizzare automaticamente tutte le richieste HTTP a HTTPS. I file del certificato si trovano nella directory `/etc/letsencrypt/live/dominioesempio.it/`. Il file `fullchain.pem` contiene il certificato SSL, mentre il file `privkey.pem` contiene la chiave privata. Questi devono essere inseriti nel file di configurazione NGINX:

```txt
ssl_certificate /etc/letsencrypt/live/dominioesempio.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dominioesempio.it/privkey.pem;
```

Poiché Certbot ha modificato il file di configurazione, è necessario aggiungere nuovamente l’attributo `ssl` tra `443` e `http2`. Il blocco corrispondente dovrebbe quindi apparire come segue:

```txt
server { 
    listen 443 ssl http2; 
    listen [::]:443 ssl http2; 
    server_name dominioesempio.it;
```

### Riavviare i servizi e avviare Nextcloud

Per applicare le modifiche, è necessario ricaricare i servizi PHP-FPM e NGINX:

```bash
sudo systemctl reload php8.3-fpm.service
sudo systemctl reload nginx.service
```

A questo punto apri il browser e digita il tuo dominio (nel nostro caso, dominioesempio.it). Se tutto è stato configurato correttamente, vedrai la pagina iniziale di Nextcloud.

N.B. Se Nextcloud non funziona, è possibile che il tuo dominio non sia ancora stato inserito nel file `config.php` come [dominio sicuro per Nextcloud](https://www.ionos.it/digitalguide/server/tools-o-strumenti/trusted-domain-su-nextcloud/). Esegui questo passaggio per risolvere il problema.


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/nextcloud-con-nginx/](https://www.ionos.it/digitalguide/server/configurazione/nextcloud-con-nginx/) for AI/LLM consumption.