Guide des technologies

Installer ownCloud sur Rocky Linux — Guide complet

10 min read Serveurs Mis à jour 22 Oct 2025
Installer ownCloud sur Rocky Linux — Guide complet
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

Installation du dépôt EPEL

Activer le module Redis v6 :

sudo dnf module reset redis
sudo dnf module enable redis:6

Activation de Redis v6

Installer les paquets de base :

sudo dnf install libsmbclient redis unzip libzip bzip2 openssl rsync ImageMagick

Installation des dépendances

Démarrer et activer Redis :

sudo systemctl enable redis
sudo systemctl start redis
sudo systemctl status redis

Vérification du service 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

Ajout du dépôt REMI

Activer le module PHP 7.4 :

sudo dnf module reset php
sudo dnf module enable php:remi-7.4

Activation du module PHP 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

Installation de PHP 7.4 et extensions

Vérifier la version de PHP :

php --version

Vérification de la version PHP

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

Installation d'httpd

Démarrer et activer httpd :

sudo systemctl enable httpd
sudo systemctl start httpd
sudo systemctl status httpd

Vérification d'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

Configuration de firewalld

Vérifier PHP via une page phpinfo :

cat <
EOF

Ouvrez http:///info.php pour vérifier que PHP fonctionne correctement.

Page phpinfo

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

Installation de MariaDB

Sécuriser MariaDB :

sudo mysql_secure_installation

Ré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.

Création de la base et de l'utilisateur MariaDB

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.sha256

Vérifier l’archive :

sudo sha256sum -c owncloud-complete-latest.tar.bz2.sha256 < owncloud-complete-latest.tar.bz2

Extraire et positionner les fichiers :

sudo tar -xvjf owncloud-complete-latest.tar.bz2
sudo chown -R apache:apache /var/www/owncloud

Notes : 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

Configuration d'httpd pour ownCloud

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-utils

Appliquer 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

Configuration SELinux

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.

Install ownCloud via web

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

Connexion ownCloud

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

Tableau de bord ownCloud

Téléversement et création de répertoire

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 -e

Ajouter la ligne :

*/15 * * * * /usr/bin/php -f /var/www/owncloud/occ system:cron

Enregistrez. ownCloud exécutera les tâches planifiées toutes les 15 minutes.

Configuration cron

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

Vérifications de sécurité et configuration

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)

  1. Erreur 500 après installation : vérifiez les logs Apache (/var/log/httpd/) et le journal PHP. Contrôlez permissions et SELinux.
  2. Échec de connexion à la base : vérifiez credentials, que MariaDB écoute bien et que l’utilisateur a les privilèges.
  3. Problèmes d’upload de fichier : vérifiez php.ini (upload_max_filesize, post_max_size), et droits sur le répertoire data.
  4. Messages “All checks passed” manquants : consultez les sous-systèmes listés dans Paramètres → Administration.

Checklist de diagnostic rapide :

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

  1. Préparer l’infrastructure (serveurs, IP, DNS, sauvegardes).
  2. Installer base LAMP et dépendances sur staging.
  3. Déployez ownCloud sur staging et testez intégrations.
  4. Préparez script d’automatisation (Ansible, scripts bash) pour réplicabilité.
  5. Basculer en production pendant une fenêtre de maintenance, effectuer sauvegarde préalable.
  6. 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.sh

Migration 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.

Auteur
Édition

Matériaux similaires

Installer et utiliser Podman sur Debian 11
Conteneurs

Installer et utiliser Podman sur Debian 11

Guide pratique : apt-pinning sur Debian
Administration système

Guide pratique : apt-pinning sur Debian

OptiScaler : activer FSR 4 dans n'importe quel jeu
Jeux PC

OptiScaler : activer FSR 4 dans n'importe quel jeu

Dansguardian + Squid NTLM sur Debian Etch
réseau

Dansguardian + Squid NTLM sur Debian Etch

Corriger l'erreur d'installation Android sur SD
Android, Dépannage

Corriger l'erreur d'installation Android sur SD

KNetAttach et remote:/ — Dossiers réseau KDE
Tutoriel

KNetAttach et remote:/ — Dossiers réseau KDE