Installer ownCloud sur Rocky Linux — Guide complet
Ce tutoriel explique pas à pas comment installer et configurer ownCloud sur un serveur Rocky Linux 8.x : piles LAMP, Redis, MariaDB, SELinux et firewalld. Vous apprendrez à préparer les dépôts, installer PHP 7.4 requis, configurer Apache, sécuriser l’installation avec TLS, automatiser les tâches via cron et vérifier le bon fonctionnement. Ce guide contient des conseils d’exploitation, des vérifications, une checklist poste-déploiement et des solutions aux erreurs courantes.
Important : ownCloud nécessite PHP 7.4 au moment de ce guide. Si vous planifiez un déploiement en production, préférez un environnement de test et un plan de sauvegarde avant toute mise à jour.
Introduction
ownCloud est une suite logicielle open source permettant de créer un service d’hébergement de fichiers auto-hébergé, semblable à Google Drive ou Dropbox. Elle comprend une application serveur (composant principal) et des clients pour Linux, Windows, macOS, Android et iOS. ownCloud est principalement écrit en PHP, JavaScript et Go. L’application synchronise fichiers, images, archives, événements de calendrier, carnets d’adresses et tâches, et s’étend par des applications additionnelles.
Définition rapide : LAMP = Linux + Apache (httpd) + MariaDB/MySQL + PHP. Dans ce guide, Rocky Linux 8.x est l’OS cible.
Objectif et variantes de déploiement
Objectif principal : installer une instance ownCloud stable, sécurisée et maintenable sur Rocky Linux 8.x.
Variantes possibles :
- Déployer ownCloud sur Nginx au lieu d’Apache.
- Utiliser PostgreSQL plutôt que MariaDB/MySQL.
- Héberger sur une distribution autre que Rocky (RHEL/CentOS/AlmaLinux).
- Orchestration en conteneurs (Docker, Kubernetes) — non couvert ici mais mentionné en alternatives.
Prérequis
Avant de commencer, préparez :
- Un serveur Rocky Linux 8.x avec accès root ou un utilisateur disposant de sudo.
- Une adresse IP publique ou réseau local ; l’exemple utilise 192.168.5.100 et le nom d’hôte owncloud-server.
- Un nom de domaine ou sous-domaine pointant vers l’IP du serveur ; l’exemple utilise howtoforge.local.
- Accès Internet depuis le serveur pour télécharger paquets et sources.
- Temps et droits pour modifier la configuration système (firewall, SELinux, services).
1. Installer les dépendances de base
Nous allons activer les dépôts nécessaires, installer EPEL, choisir Redis v6 et installer des outils requis (openssl, ImageMagick, zip, etc.).
Installer le dépôt EPEL :
sudo dnf install epel-release
Activer le module Redis v6 :
sudo dnf module reset redis
sudo dnf module enable redis:6
Installer les paquets de base :
sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagick
Démarrer et activer Redis :
sudo systemctl enable redis
sudo systemctl start redis
sudo systemctl status redis
Notes : Redis est utilisé comme cache/opcache et peut améliorer la performance pour les environnements à charge.
2. Installer PHP 7.4 et extensions requises
Contexte : la version d’ownCloud décrite ici exige PHP 7.4. REMI est un dépôt tiers fiable pour obtenir PHP 7.4 sur Rocky Linux 8.
Ajouter le dépôt REMI :
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Activer le module PHP 7.4 :
sudo dnf module reset php
sudo dnf module enable php:remi-7.4
Installer PHP 7.4 avec les extensions nécessaires à 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-phpseclib
Vérifier la version de PHP :
php --version
Conseil : conservez une liste des modules installés (php -m) pour diagnostiquer les dépendances manquantes lors d’un futur upgrade.
3. Installer et configurer Apache (httpd)
ownCloud fonctionne avec Apache, Nginx ou IIS. Ici, nous utilisons Apache (httpd).
Installer httpd et modules SSL :
sudo dnf install httpd httpd-devel httpd-tools mod_ssl
Démarrer et activer httpd :
sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd
Ouvrir HTTP et HTTPS dans firewalld :
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-services
Vérifier PHP via une page phpinfo :
cat <
EOF Ouvrez http://

Important : supprimez le fichier info.php après vérification pour éviter la fuite d’information système.
4. Installer et sécuriser MariaDB
ownCloud supporte plusieurs bases de données ; MariaDB/MySQL ou PostgreSQL sont recommandées en production.
Installer MariaDB :
sudo dnf install mariadb-server
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo systemctl status mariadb
Sécuriser MariaDB :
sudo mysql_secure_installationRépondez aux questions interactives selon ces recommandations :
- Switch authentication method for root user to unix_socket? : n
- Change root password? : y (choisir un mot de passe fort)
- Disallow root remote login? : y
- Remove anonymous users? : y
- Remove test database? : y
- Reload privilege tables? : y
Créer une base et un utilisateur 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;
EXIT;Remplacez ‘owncloudpass’ par un mot de passe fort et stockez-le en lieu sûr.

5. Télécharger et déployer ownCloud
Télécharger la dernière archive et son empreinte 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.sha256Vérifier l’archive :
sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2Extraire et positionner les fichiers :
sudo tar -xvjf owncloud-complete-latest.tar.bz2
sudo chown -R apache:apache /var/www/owncloudNotes : conservez l’archive d’origine et la somme SHA pour audit et reprise.
6. Configurer l’hôte virtuel Apache
Créez le fichier /etc/httpd/conf.d/owncloud.conf et ajoutez la configuration suivante (adaptez ServerName et chemins de certificats) :
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
Tester la configuration et redémarrer Apache :
sudo apachectl configtest
sudo systemctl restart httpd
Conseil : utilisez Certbot pour obtenir et renouveler automatiquement des certificats Let’s Encrypt.
7. Configuration SELinux
Si SELinux est en mode enforcing (fortement recommandé sur Rocky), vous devez marquer correctement les répertoires et autoriser certaines actions réseau pour httpd.
Installer les outils SELinux :
sudo dnf install policycoreutils-python-utilsAppliquer les contextes SELinux à ownCloud :
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/'Activer les booléens nécessaires pour httpd :
sudo setsebool -P httpd_can_network_connect_db on
sudo setsebool -P 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 on
Note : évitez de désactiver SELinux en production. Ajustez les booléens en fonction des modules réellement utilisés.
8. Installation via l’interface web
Accédez à https://howtoforge.local/owncloud/ et suivez l’assistant d’installation :
- Créez un utilisateur administrateur et mot de passe.
- Choisissez MySQL/MariaDB comme base, et renseignez le serveur, nom de la base, utilisateur et mot de passe créés précédemment.
- Cliquez sur Finish setup.

Après l’installation, connectez-vous sur la page de connexion et accédez au tableau de bord.

Créez un répertoire test et téléversez des fichiers pour vérifier la lecture/écriture.


9. Automatiser les tâches : configurer cron
ownCloud propose plusieurs options pour les tâches planifiées ; cron est recommandé en production.
Exécuter la commande d’activation et tester :
sudo -u apache /var/www/owncloud/occ background:cronÉditer la crontab de l’utilisateur apache :
sudo crontab -u apache -eAjouter la ligne :
*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cronEnregistrez. ownCloud exécutera les tâches planifiées toutes les 15 minutes.

Vérifiez dans Paramètres → Général que « All checks passed » s’affiche.

Vérifications post-installation obligatoires
- Accès HTTPS fonctionnel et certificat valide.
- Permissions SELinux et propriétaires des fichiers corrects (apache:apache sur /var/www/owncloud).
- Cron actif et exécution régulière des tâches.
- Stockage disque suffisant et quotas configurés si nécessaire.
- Cache configuré (Redis/APCu) pour de meilleures performances.
Bonnes pratiques de sécurité et hardening
- Activer HSTS (déjà présent dans la configuration exemple).
- Forcer le chiffrement TLS et désactiver TLS 1.0/1.1.
- Restreindre l’accès SSH (clé publique, port non standard, blocage des IP après tentatives échouées).
- Garder le système et les paquets à jour par patching régulier.
- Sauvegardes régulières (base de données + dossier /var/www/owncloud + répertoire data).
- Surveillance des logs : /var/log/httpd/, /var/log/messages et logs ownCloud.
- Auditer les applications ownCloud installées et limiter les applications tierces.
Sauvegarde et reprise après incident
Stratégie minimale recommandée :
- Sauvegarde quotidienne de la base MariaDB :
mysqldump -u root -p owncloud > /backup/owncloud-db-$(date +%F).sql- Sauvegarde incrémentale ou complète du répertoire data et /var/www/owncloud (rsync ou snapshot LVM).
- Procédure de restauration succincte : restaurer la base, restaurer /var/www/owncloud et /var/www/owncloud/data, vérifier droits et SELinux, redémarrer services.
Dépannage courant (troubleshooting)
- Erreur 500 après installation : vérifiez les logs Apache (/var/log/httpd/) et le journal PHP. Contrôlez permissions et SELinux.
- Échec de connexion à la base : vérifiez credentials, que MariaDB écoute bien et que l’utilisateur a les privilèges.
- Problèmes d’upload de fichier : vérifiez php.ini (upload_max_filesize, post_max_size), et droits sur le répertoire data.
- Messages “All checks passed” manquants : consultez les sous-systèmes listés dans Paramètres → Administration.
Checklist de diagnostic rapide :
- ping domaine
- curl -I https://howtoforge.local/owncloud
- sudo tail -f /var/log/httpd/*
- sudo journalctl -u mariadb -u httpd -u redis
Alternatives et extensions
- Nginx : utilisez la configuration recommandée par ownCloud pour Nginx si vous préférez ce serveur.
- PostgreSQL : option viable pour la base de données.
- Conteneurisation : déployer ownCloud via Docker Compose ou Kubernetes pour facilité de scaling et isolation.
- Intégrations : LDAP/AD pour authentification, S3 comme stockage externe.
Maturité et capacités opérationnelles
Niveaux de maturité pour un déploiement ownCloud :
- Prototype : instance locale, HTTP, pas de TLS, pas de sauvegardes automatisées.
- Pré-production : TLS, database dédiée, sauvegardes manuelles, tests de charge.
- Production : TLS automatisé (Let’s Encrypt/ACME), monitoring, sauvegardes et restaurations testées, SLA, cluster de base/proxy en lecture si besoin.
Checklist rôle par rôle
Administrateur système :
- Installer OS et patches de sécurité.
- Configurer réseau et DNS.
- Mettre en place firewall et SELinux.
- Assurer sauvegardes et monitoring.
Administrateur ownCloud :
- Créer comptes administrateurs owner.
- Gérer quotas et applications ownCloud.
- Supervisor les mises à jour de l’application.
Développeur/Intégrateur :
- Vérifier compatibilité apps.
- Tester intégrations LDAP/S3.
- Déployer mises à jour sur staging avant production.
Critères d’acceptation
Une installation est considérée réussie lorsque :
- L’URL https://
/owncloud s’ouvre sans erreurs. - L’administrateur peut se connecter et créer/téléverser des fichiers.
- Les vérifications système dans Paramètres indiquent « All checks passed ».
- Cron s’exécute régulièrement et les tâches planifiées sont traitées.
- Sauvegarde et procédure de restauration documentées et testées.
Limitations et cas d’échec possibles
- Si vous migrez depuis une version d’ownCloud incompatible avec PHP 7.4, l’installation peut échouer.
- Modules PHP manquants provoqueront des erreurs d’installation ou de fonctionnement.
- Environnements avec SELinux mal configurés rendent l’accès en écriture impossible.
- Disques pleins ou quotas mal définis empêchent les uploads.
Conseils pour la mise à jour et la maintenance
- Testez toute mise à jour dans un environnement de staging identique.
- Mettez à jour les paquets OS, PHP et extensions régulièrement, mais suivez la compatibilité ownCloud.
- Conservez des sauvegardes avant chaque upgrade majeur.
- Vérifiez les notes de version d’ownCloud pour exigences de version PHP ou SQL.
Points spécifiques à la vie privée et conformité (GDPR)
- ownCloud stocke les fichiers des utilisateurs ; définissez une politique de rétention et chiffrez les backups si nécessaire.
- Documentez l’emplacement des données et les processus d’accès pour répondre aux demandes d’exercice des droits (suppression, export).
- Limitez les applications tierces et contrôlez les autorisations des applications connectées.
Mini-méthodologie de déploiement en production
- Préparer l’infrastructure (serveurs, IP, DNS, sauvegardes).
- Installer base LAMP et dépendances sur staging.
- Déployez ownCloud sur staging et testez intégrations.
- Préparez script d’automatisation (Ansible, scripts bash) pour réplicabilité.
- Basculer en production pendant une fenêtre de maintenance, effectuer sauvegarde préalable.
- Monitorer et itérer.
Templates utiles
Exemple de sauvegarde MariaDB journalisée (script simple) :
#!/bin/bash
OUTDIR=/backup/owncloud
mkdir -p "$OUTDIR"
mysqldump -u root -p'VOTRE_PASS_ROOT' owncloud > "$OUTDIR/owncloud-db-$(date +%F).sql"
rsync -a /var/www/owncloud/data "$OUTDIR/data-$(date +%F)"Crontab pour rotation des sauvegardes (exemple) :
0 3 * * * /usr/local/bin/backup-owncloud.shMigration depuis d’autres services
- Depuis Nextcloud : suivre la documentation officielle pour vérifier compatibilité de version et d’apps ; Nextcloud et ownCloud partagent une histoire commune mais certaines apps peuvent différer.
- Depuis un stockage externe (S3, SMB) : configurer le stockage externe dans l’interface ownCloud et migrer fichiers via rsync ou outils de migration.
Récapitulatif et conclusion
Vous avez maintenant :
- Préparé les dépôts et installé dépendances (EPEL, REMI, Redis).
- Installé PHP 7.4 et extensions nécessaires.
- Installé Apache, MariaDB et configuré SSL.
- Appliqué les contextes SELinux et activé les booléens requis.
- Téléchargé et déployé ownCloud, puis finalisé l’installation via l’interface web.
- Configuré cron, sauvegardes et validé l’état avec des vérifications post-installation.
Résumé des étapes suivantes recommandées : mettre en place un plan de sauvegarde automatisé, surveiller l’instance (logs, métriques), appliquer des tests de montée en charge si vous attendez beaucoup d’utilisateurs, et documenter la procédure de restauration.
Merci d’avoir suivi ce tutoriel. Si vous souhaitez, je peux générer un playbook Ansible basé sur les commandes ci-dessus, un script de sauvegarde plus avancé ou une checklist imprimable pour votre équipe.
Fait pour Rocky Linux 8.x — adaptez chemins et noms de domaines selon votre environnement de production.
Matériaux similaires
Installer et utiliser Podman sur Debian 11
Guide pratique : apt-pinning sur Debian
OptiScaler : activer FSR 4 dans n'importe quel jeu
Dansguardian + Squid NTLM sur Debian Etch
Corriger l'erreur d'installation Android sur SD