Nextcloud è una soluzione cloud open source e un fork di ownCloud, fondata nel 2016 dall’ex creatore di ownCloud Frank Karlitschek. Con Nextcloud gestisci la tua cloud privata per file, calendari, contatti, chat e videochiamate – completamente sotto il tuo controllo, senza affidarti a fornitori esterni.
Per garantire prestazioni, stabilità e funzionalità ottimali, consigliamo questa configurazione per ospitare un server Nextcloud. Il server Nextcloud non è compatibile con Windows o macOS, almeno non senza virtualizzazione aggiuntiva o soluzioni simili.
I requisiti seguenti si basano sui requisiti ufficiali di sistema di Nextcloud e sulla nostra esperienza. Se non li soddisfi, potresti incontrare problemi.
| Componenti | Minimo | Consigliato |
|---|---|---|
| CPU | 1x 2 GHz | 4x 2+ GHz |
| RAM | 1 GB | 4+ GB |
| Spazio | 10 GB | 50+ GB (dipende dalla quantità di dati archiviati) |
| Banda | 100 Mbit/s (up & down) | 500 Mbit/s (up & down), consigliato se più utenti usano la cloud |
| Piattaforma | Opzioni |
|---|---|
| Sistema operativo | Ubuntu (22.04, 24.04), Debian (12, 13) |
| Database | MariaDB 10.11+ (consigliato), PostgreSQL 14+, MySQL 8.0+, SQLite (solo per test e installazioni minime) |
| Webserver | Apache 2.4 con mod_php o php-fpm (consigliato), oppure Nginx con php-fpm |
| PHP | 8.3, 8.4, 8.5 (consigliato) |
Per i requisiti più aggiornati consulta la documentazione ufficiale di Nextcloud – Nextcloud aggiorna regolarmente le richieste di PHP e database con le nuove versioni principali.
Per installare la cloud su un server Linux devi connetterti tramite un client SSH. Se non sai come funziona SSH, ecco una guida: Primo accesso (SSH)
Quando la connessione è attiva, puoi installare i pacchetti necessari per l’installazione vera e propria di Nextcloud. Questo include un webserver e PHP con le estensioni richieste da Nextcloud (tra cui gd, curl, mbstring, xml, zip, intl, bcmath, gmp, apcu).
Apache (webserver) e PHP
🗄️ Ubuntu 24.04 (fornisce PHP 8.3 direttamente):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Ubuntu 22.04 (PHP standard è 8.1, troppo vecchio per le versioni attuali di Nextcloud – serve PPA):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
🗄️ Debian 13 “trixie” (fornisce PHP 8.3 direttamente):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Debian 12 “bookworm” (PHP standard è 8.2, troppo vecchio per Nextcloud attuale – serve repo di terze parti):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 lsb-release apt-transport-https ca-certificates wget
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
Controlla versione PHP:
php -v
Nextcloud richiede memory_limit = 512M o superiore. Imposta questo valore nel file php.ini corretto (es. /etc/php/8.3/apache2/php.ini o /etc/php/8.3/fpm/php.ini) e riavvia Apache o PHP-FPM.
Il passo successivo è scegliere un tipo di database per salvare i dati di Nextcloud. Scegli una delle opzioni seguenti e segui solo i passaggi corrispondenti.
Installa il pacchetto:
sudo apt-get install mariadb-server
Durante l’installazione ti verrà chiesto di impostare una password root. Se non appare la richiesta, la password predefinita è vuota. Questo è insicuro e va cambiato subito!
Poi connettiti al server database e crea il database necessario:
mysql -u root -p
CREATE DATABASE nextcloud;
Crea un utente con accesso al database Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'LA_TUA_PASSWORD';
Non saltare questo passaggio usando l’utente root. È insicuro e mette a rischio i tuoi dati!
Infine assegna i permessi all’utente:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Quando hai finito, esci con exit e continua con i passaggi successivi.
Installa il pacchetto:
sudo apt-get install mysql-server
Durante l’installazione ti verrà chiesto di impostare una password root. Se non appare la richiesta, la password predefinita è vuota. Questo è insicuro e va cambiato subito!
Poi connettiti al server database e crea il database necessario:
mysql -u root -p
CREATE DATABASE nextcloud;
Crea un utente con accesso al database Nextcloud:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'LA_TUA_PASSWORD';
Non saltare questo passaggio usando l’utente root. È insicuro e mette a rischio i tuoi dati!
Infine assegna i permessi all’utente:
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;
Quando hai finito, esci con exit e continua con i passaggi successivi.
Installa i pacchetti:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Connettiti al server database e crea database e utente:
sudo -u postgres psql
CREATE USER nc_user WITH ENCRYPTED PASSWORD 'LA_TUA_PASSWORD';
CREATE DATABASE nextcloud OWNER nc_user;
Non saltare questo passaggio usando l’utente superuser postgres per Nextcloud. È insicuro e mette a rischio i tuoi dati!
Quando hai finito, esci con \q. I dati di connessione PostgreSQL li inserirai nel web installer o direttamente nel file config.php:
<?php
$CONFIG = array(
'dbtype' => 'pgsql',
'dbname' => 'nextcloud',
'dbuser' => 'nc_user',
'dbpassword' => 'LA_TUA_PASSWORD',
'dbhost' => 'localhost',
'dbtableprefix' => '',
);
SQLite è adatto solo per test o installazioni singolo utente molto piccole – per uso multiutente in produzione Nextcloud sconsiglia vivamente (per esempio per mancanza di concorrenza nelle richieste simultanee).
Installa i pacchetti:
sudo apt-get install sqlite3 php8.3-sqlite3
Nextcloud crea automaticamente il file database SQLite durante l’installazione, non serve crearlo manualmente. La configurazione in config.php è:
<?php
$CONFIG = array(
'dbtype' => 'sqlite3',
'dbname' => 'nextcloud',
'dbtableprefix' => '',
);
