Installare ownCloud su Rocky Linux: guida completa
Questa guida mostra come installare e configurare ownCloud su Rocky Linux 8.x. Copre l’installazione della LAMP stack, Redis, SELinux, firewalld, la configurazione del virtual host Apache, la creazione del database MariaDB, la verifica del pacchetto ownCloud e la messa in produzione con cron. Segui i passaggi passo passo e i checklist per una installazione stabile e sicura.
Introduzione
ownCloud è una suite open source per creare servizi di file hosting self-hosted analoghi a Google Drive e Dropbox. Include un’applicazione server (componente principale) e client per Linux, Windows, macOS, Android e iOS. ownCloud è scritto principalmente in PHP, JavaScript e Go. Permette sincronizzazione di file, calendario, rubriche e più applicazioni tramite estensioni.
In questa guida installeremo ownCloud su un server Rocky Linux. La procedura copre le dipendenze, l’installazione di PHP 7.4 (necessaria per le versioni menzionate), Apache/httpd, MariaDB, Redis, configurazione SELinux e Firewalld, e la fase di installazione via web.
Importante: questa guida segue il flusso descritto nel documento sorgente e usa versioni specifiche (Redis v6, PHP 7.4, ownCloud 10.11) indicate al momento della scrittura. Adatta i comandi alle versioni correnti se necessario.
Intento principale e varianti correlate
- Intento principale: installare ownCloud su Rocky Linux
- Varianti correlate: installare ownCloud con Apache, installare ownCloud con Nginx e PHP-FPM, configurare ownCloud con SELinux attivo, ottimizzare ownCloud con Redis e APCu
Cosa troverai in questa guida
- Requisiti e preparazione del server
- Installazione delle dipendenze base e Redis v6
- Installazione di PHP 7.4 tramite repository REMI e delle estensioni richieste
- Installazione e configurazione di Apache/httpd e Firewalld
- Installazione e hardening di MariaDB e creazione del database ownCloud
- Scarico, verifica e installazione dei file ownCloud
- Configurazione SELinux per ownCloud
- Esecuzione dell’installer web e configurazione del cron
- Controlli, troubleshooting, checklist operative e suggerimenti per produzione
Fatt box: numeri chiave
- ownCloud: versione citata v10.11
- PHP: 7.4 (compatibilità per la versione citata)
- Redis: 6
- Sistema target: Rocky Linux 8.x
Requisiti
Prima di iniziare hai bisogno di:
- Un server Rocky Linux 8.x con accesso root o un utente con privilegi sudo.
- Un dominio o sottodominio puntato all’IP del server (esempio usato: howtoforge.local).
- Connessione internet per scaricare pacchetti e repository.
Suggerimento: esegui i comandi come utente sudo per evitare errori di permessi.
Installazione delle dipendenze base
Aggiungi il repository EPEL e poi installa pacchetti di base e Redis.
Esegui:
sudo dnf install epel-releaseQuando richiesto, conferma con “y”.

Abilita Redis v6 dal modulo del repository:
sudo dnf module reset redis
sudo dnf module enable redis:6Conferma con “y” quando richiesto.

Installa le dipendenze consigliate:
sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagickConferma con “y”.

Abilita e avvia Redis:
sudo systemctl enable redis
sudo systemctl start redis
sudo systemctl status redisVerifica che Redis sia attivo e abilitato al boot.

Nota: Redis viene usato da ownCloud per caching e per migliorare le performance nelle sessioni e nei metadati. Se prevedi configurazioni distribuite o cluster, considera la topologia Redis adatta.
Installare PHP 7.4 e le estensioni necessarie
La versione di ownCloud descritta richiede PHP 7.4. Rocky Linux 8 ha repository ufficiali, ma useremo REMI per ottenere PHP 7.4.
Aggiungi REMI:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpmConferma con “y”.

Abilita il modulo PHP 7.4:
sudo dnf module reset php
sudo dnf module enable php:remi-7.4Conferma con “y”.

Installa PHP e le estensioni richieste da ownCloud:
sudo dnf install --enablerepo=remi php php-intl php-mysql php-mbstring \
php-imagick php-igbinary php-gmp php-bcmath \
php-curl php-gd php-zip php-imap php-ldap \
php-bz2 php-ssh2 php-common php-json \
php-xml php-devel php-apcu php-redis \
php-smbclient php-pear php-phpseclibConferma con “y” quando richiesto.

Controlla la versione di PHP:
php --versionDovresti vedere PHP 7.4 installato.

Suggerimento: considera l’uso di OPcache e APCu per migliorare le prestazioni di PHP in produzione.
Installare il web server httpd (Apache)
ownCloud funziona con Apache, Nginx e IIS. Qui useremo Apache/httpd.
Installa Apache e moduli SSL:
sudo dnf install httpd httpd-devel httpd-tools mod_sslConferma con “y”.

Abilita e avvia httpd:
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpdVerifica che il servizio sia attivo.

Aggiungi regole in firewalld per HTTP e HTTPS:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-servicesOra il server è raggiungibile dall’esterno se il DNS punta correttamente.

Verifica l’integrazione PHP+Apache creando un file phpinfo:
cat <
EOF Apri nel browser: http://IP_DEL_SERVER/info.php

Rimuovi il file info.php dopo il controllo per motivi di sicurezza.
Installare e configurare MariaDB
ownCloud supporta diversi RDBMS. Per produzione si consiglia MariaDB/MySQL o PostgreSQL. Qui useremo MariaDB.
Installa MariaDB server:
sudo dnf install mariadb-serverConferma con “y”.

Abilita e avvia MariaDB:
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb
Esegui lo script di hardening:
sudo mysql_secure_installationRisposte consigliate (seguire le istruzioni a schermo):
- Cambiare metodo di autenticazione per root? n
- Cambiare password root? y → inserire password sicura
- Disabilitare login remoto root? y
- Rimuovere utenti anonimi? y
- Rimuovere database di test? y
- Ricaricare i privilegi? y
Ora crea il database e l’utente ownCloud:
sudo mysql -u root -p
CREATE DATABASE owncloud;
CREATE USER IF NOT EXISTS 'owncloud'@'localhost' IDENTIFIED BY 'owncloudpass';
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quitSostituisci ‘owncloudpass’ con una password robusta.

Verifica i privilegi dell’utente owncloud:
SHOW GRANTS FOR 'owncloud'@'localhost';
Nota di sicurezza: limita le connessioni al database al minimo indispensabile e considera l’uso di certificati SSL per le connessioni DB se remote.
Scaricare e verificare il codice sorgente ownCloud
Spostati in /var/www e scarica l’archivio ufficiale e il checksum SHA256:
cd /var/www
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2
wget https://download.owncloud.com/server/stable/owncloud-complete-latest.tar.bz2.sha256Verifica il checksum:
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2Dovresti vedere “OK” come risultato se il file è integro.
Estrai l’archivio:
sudo tar -xvjf owncloud-complete-latest.tar.bz2Imposta il proprietario della directory su apache:
sudo chown -R apache:apache /var/www/owncloudQuesto è necessario affinché Apache possa leggere e scrivere nei percorsi richiesti dall’installazione.
Configurazione Virtual Host Apache per ownCloud
Crea il file di configurazione /etc/httpd/conf.d/owncloud.conf con il contenuto seguente. Modifica Domain e i path SSL in base al tuo ambiente.
ServerName howtoforge.local
Redirect permanent / https://howtoforge.local/
ServerName howtoforge.local
DocumentRoot /var/www
Protocols h2 http:/1.1
Redirect permanent / https://howtoforge.local/
ErrorLog /var/log/httpd/howtoforge.local-error.log
CustomLog /var/log/httpd/howtoforge.local-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/howtoforge.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/howtoforge.local/privkey.pem
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression off
Header always set Strict-Transport-Security "max-age=63072000"
Alias /owncloud "/var/www/owncloud/"
Options +FollowSymlinks
AllowOverride All
Dav off
SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud
Verifica la configurazione Apache e riavvia il servizio:
sudo apachectl configtest
sudo systemctl restart httpd
Nota: genera certificati SSL/TLS con Let’s Encrypt o un’authority di tua scelta prima di attivare HTTPS in produzione.
Configurazione SELinux per ownCloud
Se SELinux è attivo e in modalità enforcing, è necessario applicare i contesti corretti e abilitare i boolean necessari.
Installa gli strumenti di gestione SELinux:
sudo dnf install policycoreutils-python-utilsConferma con “y”.

Aggiungi i contesti e ripristina le etichette:
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/data(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/config(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/apps-external(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.htaccess'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/owncloud/.user.ini'
sudo restorecon -Rv '/var/www/owncloud/'Abilita i boolean per permettere ad httpd di connettersi ai servizi necessari:
sudo setsebool -P httpd_can_network_connect_db on
sudo setsebool httpd_unified on
sudo setsebool -P httpd_can_connect_ldap on
sudo setsebool -P httpd_can_network_connect on
sudo setsebool -P httpd_can_network_memcache on
sudo setsebool -P httpd_can_sendmail on
sudo setsebool -P httpd_use_cifs on
sudo setsebool -P httpd_use_fusefs on
sudo setsebool -P httpd_use_gpg onQueste impostazioni consentono ad Apache di comunicare con database, memcache, servizi di rete e risorse esterne necessarie a ownCloud.

Processo di installazione via web
Apri il browser e visita: https://howtoforge.local/owncloud/ (sostituisci con il tuo dominio).
Compila i campi:
- Crea un utente amministratore e password.
- Seleziona MySQL/MariaDB.
- Inserisci host (localhost), nome DB (owncloud), utente (owncloud) e la password scelta.
Clicca “Finish setup” per avviare l’installazione via web.

Al termine comparirà la schermata di login ownCloud.

Accedi con l’utente amministratore e verrai reindirizzato alla dashboard.

Puoi creare cartelle e caricare file dall’interfaccia web. Esempio: creazione di una directory test-directory e upload di file.

Impostare cron per ownCloud
ownCloud consiglia l’uso di cron per eseguire attività periodiche in background.
Imposta l’esecuzione background in modalità cron:
sudo -u apache /var/www/owncloud/occ background:cronAggiungi il cron dell’utente apache:
sudo crontab -u apache -eAggiungi la riga:
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cronQuesto esegue il cron ogni 15 minuti.

Controlla in Impostazioni → Generale → Security and setup warnings che tutte le verifiche siano passate.

Hardening e suggerimenti di produzione
- HTTPS obbligatorio: usa certificati validi e HSTS.
- Disabilita phpinfo pubblico e rimuovi file di test.
- Limita l’accesso SSH via firewall e usa autenticazione a chiave.
- Esegui backup regolari del DB e della directory /var/www/owncloud/data.
- Monitora risorse (CPU, RAM, I/O disco). ownCloud può diventare I/O-bound su carichi elevati.
- Abilita OPcache e APCu per PHP. Usa Redis come cache e per le sessioni.
- Aggiorna regolarmente il sistema operativo, PHP e ownCloud.
- Evita di esporre l’utente root: usa sudoers per gli amministratori.
Backup e ripristino: playbook essenziale
Checklist per backup:
- Backup database MariaDB: mysqldump o snapshot logico.
- Backup directory /var/www/owncloud (codice e config).
- Backup directory dei dati: /var/www/owncloud/data.
- Verifica integrità dei backup (restore di prova su ambiente di staging).
Esempio rapido di dump DB:
mysqldump -u root -p owncloud > /root/backup-owncloud-$(date +%F).sqlCopia i backup in storage esterno (NAS/obj storage) e mantieni una politica di rotazione.
Criteri di accettazione
Un’installazione ownCloud è pronta per la produzione quando:
- Tutti i servizi (httpd, php-fpm se usato, redis, mariadb) sono in esecuzione e abilitati.
- SELinux è configurato correttamente senza errori per i contesti di ownCloud.
- Le verifiche in Impostazioni → Security and setup warnings mostrano “All checks passed”.
- HTTPS è operativo con certificato valido e HSTS.
- Cron è configurato e funzionante.
- Sono stati eseguiti backup completi e verificato il ripristino.
Test cases e criteri di verifica
- Login: admin può accedere alla dashboard.
- Upload: caricare un file di 10 MB con successo.
- Download: scaricare lo stesso file entro tempo ragionevole.<
- Condivisione: creare una condivisione interna e verificare permessi.
- Backup/restore: ripristino DB e dati su ambiente di test e verifica integrità.
Troubleshooting comune
Problema: pagina bianca o errore 500
- Controlla i log di Apache: /var/log/httpd/error_log
- Controlla i log PHP e SELinux (audit.log)
- Verifica permessi dei file e contesti SELinux
Problema: “Database connection error”
- Controlla credenziali nel pannello di installazione o in config.php
- Assicurati che MariaDB sia in ascolto su localhost e che l’utente abbia privilegi
Problema: warning su cache/session
- Verifica che Redis sia attivo
- Configura memcache Redis in config.php di ownCloud (vedi snippet sotto)
Snippet configurazione cache Redis per config.php:
'redis' => array(
'host' => '/var/run/redis/redis.sock',
'port' => 0,
'timeout' => 0.0,
'dbindex' => 0,
),
'memcache.local' => '\\OC\\Memcache\\Redis',
'session.save_handler' => 'redis',
'session.save_path' => 'tcp://127.0.0.1:6379',Adatta il path o host/porta secondo la tua installazione Redis.
Alternative e modelli mentali
- Se preferisci Nginx + PHP-FPM, sposta le direttive virtual host in blocchi server per Nginx e configura PHP-FPM pool per l’utente apache o www-data.
- Per carichi alti, considera separare il DB in un host dedicato e usare un backend di storage per i file (NAS o object storage compatibile).
- Usa OPCache per ridurre i tempi di parsing PHP.
Quando questa procedura fallisce
- Versioni incompatibili PHP/ownCloud: verifica la matrice di compatibilità ufficiale.
- Errori SELinux: disattivare SELinux non è consigliato; correggi i contesti o booleani.
Ruoli e checklist operativa
Amministratore di sistema:
- Installare pacchetti richiesti
- Configurare SELinux e boolean
- Configurare cron e backup
- Monitorare log
Amministratore ownCloud:
- Configurare utenti e gruppi
- Installare app utili (Collabora/OnlyOffice) se necessario
- Testare sincronizzazione client
Sicurezza/Compliance:
- Verificare crittografia in transito
- Controllare accessi e auditing
Mappa decisionale rapida (Mermaid)
flowchart TD
A[Inizio: nuovo server Rocky Linux] --> B{Hai un dominio?}
B -- No --> C[Configura DNS]
B -- Sì --> D[Installa EPEL e REMI]
D --> E[Installa PHP 7.4 e moduli]
E --> F[Installa Apache]
F --> G[Installa MariaDB]
G --> H[Configura Redis]
H --> I[Scarica ownCloud e verifica SHA256]
I --> J[Configura Virtual Host e SELinux]
J --> K[Avvia installer web]
K --> L{All checks passed?}
L -- No --> M[Leggi log e correggi]
L -- Sì --> N[Configura cron e backup]
N --> O[Produzione]Glossario in una riga
- LAMP: acronimo per Linux, Apache, MariaDB/MySQL, PHP.
- SELinux: sistema di controllo degli accessi a livello kernel.
- Redis: datastore in-memory usato per caching.
Suggerimenti social (anteprima oggetto Open Graph)
OG title: Installare ownCloud su Rocky Linux — guida completa OG description: Guida passo passo per installare ownCloud su Rocky Linux 8.x con LAMP, Redis, SELinux e best practice per la produzione.
Conclusione
Hai completato l’installazione base di ownCloud su Rocky Linux. Ora puoi caricare file, creare utenti e integrare applicazioni aggiuntive. Per la produzione, assicurati di implementare backup regolari, monitoraggio e aggiornamenti periodici. Considera l’uso di Nginx/PHP-FPM, separare DB su host dedicato e ottimizzare caching con Redis e APCu quando il carico cresce.
Importante: mantieni aggiornati i componenti e rivedi le policy di sicurezza regolarmente.