Installation OwnCloud · 11 min read · Jan 22, 2026
Votre Cloud, Vos Données, Votre Façon ! - ownCloud 4.0 Sur CentOS 6.2 + nginx + PostgreSQL
Votre Cloud, Vos Données, Votre Façon ! - ownCloud 4.0 Sur CentOS 6.2 + nginx + PostgreSQL
Ce document décrit comment installer et configurer ownCloud par “ownCloud community” sur un serveur web basé sur CentOS 6.2 à partir d’un paquet tar sur un nginx et php-fpm avec une base de données PostgreSQL en tant que backend. Pour d’autres distributions, il pourrait y avoir des changements mineurs concernant les procédures d’installation des prérequis logiciels. Ce guide vous aidera non seulement à installer le produit, mais aussi à comprendre pourquoi certains points sont faits de la manière dont ils sont faits (ceci est particulièrement utile pour les utilisateurs ayant peu ou pas de connaissances qui, comme moi il y a quelque temps, viennent de commencer à utiliser Linux).
Qu’est-ce qu’ownCloud ?
C’est un outil de partage de fichiers / contacts / calendrier pour les groupes ou les entreprises, qui, de mon point de vue, combine le meilleur de Dropbox et GroupOffice (sauf pour l’intégration des e-mails jusqu’à présent), et n’est pas aussi encombré ou lourd qu’Alfresco ou Sharepoint.
Liens vers plusieurs sections pour les développeurs :
- Page d’accueil du produit : http://owncloud.org/
- IRC : http://webchat.freenode.net/?channels=owncloud
- Support : http://owncloud.org/support/
Je ne garantis pas que cela fonctionnera pour vous, car il pourrait y avoir des changements dans le logiciel, tant dans les prérequis que dans le principal, effectués de telle manière qu’ils cassent ou empêchent d’une autre manière les procédures mentionnées dans ce tutoriel de se terminer avec succès.
P.S. Tous les bugs ajoutés sont de ma responsabilité. Utilisez les commentaires ou allez sur IRC.
Remarque Préliminaire
Dans ce tutoriel, nous utilisons :
- Média d’installation Centos 6.2
- Nom d’hôte : owncloud.example.com
- Adresse IP : 192.168.1.100
- Adresse du routeur : 192.168.1.1
- Masque de sous-réseau : 255.255.255.0
- Supposons (imaginons) que le serveur est connecté à Internet public
- Nous utilisons notre ordinateur pour administrer le serveur à distance via ssh (putty sur windows), même si vous avez le serveur à vos côtés, ou si vous l’avez comme machine virtuelle exécutée sous votre système d’exploitation principal
- GNU vim comme notre éditeur de texte principal. Mais n’hésitez pas à utiliser tout autre de votre choix
Exigences
Nous aurons besoin d’une installation propre (minimale) fonctionnelle de Centos 6.2 (x86 ou x86_64 est sans importance), j’utilise personnellement la version x86_64 et je vous suggère fortement de faire de même.
D’abord les choses d’abord
Connectez-vous à la console du serveur en tant que root. Vous serez à l’invite [root@owncloud ~]#.
Je préfère certains réglages, qui sont complètement optionnels, mais vous pourriez les trouver utiles par la suite. Je configure mon terminal pour afficher la sortie en couleur avec la date, l’heure, le nom du serveur et le dossier actuel à l’invite. Aussi pour montrer l’historique des commandes avec date/heure. J’augmente également les valeurs par défaut de la taille de l’historique.
Pour ce faire, exécutez :
vi ~/.bash_profileAjoutez les lignes mentionnées après la directive export PATH. Au cas où vous ne le sauriez pas, appuyer sur “i” entre en mode insertion, “ESC” en sort. Vi est vi :)
#Taille de l'historique pour conserver 50.000 commandes et gonfler la taille du fichier dix fois plus grande
export HISTSIZE=50000
export HISTFILESIZE=500000
#Afficher l'historique avec la date comme exemple : "24.05.2012 - 14:28:56"
export HISTTIMEFORMAT="%d.%m.%Y - %H:%M:%S "
#Autocoloriser la sortie de la commande "ls"
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
#Définir l'invite pour afficher comme exemple : "Jeu Mai 24 2012 14:28:56 owncloud.example.com de root @ ~]"
#et coloriser la date, l'heure et l'emplacement différemment. Définir tous les textes d'entrée sur les valeurs par défaut.
PS1="\e[1;37m\][\e[1;36m\] \d \D{%Y} \e[1;31m\]\t \e[1;37m\] \H de \u @ \W] \033[00m\]"Enregistrez et quittez le fichier. Encore une fois, si vous ne savez pas, en dehors du mode insertion, vous entrez soit “:wq” et appuyez sur entrer pour enregistrer et quitter, ou appuyez simplement sur “ZZ” pour faire de même. Pour vous reconnecter au terminal afin d’appliquer les changements, exécutez :
exitRéseautage
Si vous n’avez pas configuré d’adresse IP statique pendant l’installation, disons que vous avez un routeur activé par DHCP, vous devez le faire maintenant, sinon passez à l’étape suivante.
vi /etc/sysconfig/network-scripts/ifcfg-eth0Changez ou ajoutez uniquement les lignes mentionnées.
BOOTPROTO="none"
NETWORK="192.168.1.0"
NETMASK="255.255.255.0"
IPADDR="192.168.1.100"
GATEWAY="192.168.1.1"Enregistrez et quittez. Puis redémarrez le réseau :
service network restartVérifiez que le réseau est reconfiguré en exécutant :
ifconfigMaintenant, vous devriez être en mesure de vous connecter au serveur sur 192.168.1.100 en tant que root. Mais ne le faites pas encore, complétez d’abord l’étape suivante.
Sécuriser le Serveur
Avant de procéder plus loin, puisque nous avons supposé que le serveur est, en fait, connecté à Internet, nous devons le sécuriser. Nous allons faire trois choses.
- Reconfigurer le serveur ssh pour qu’il n’autorise pas la connexion root et changer le port par défaut 22 en quelque chose d’autre, moins commun, c’est-à-dire 60606,
- Configurer iptables pour autoriser les connexions entrantes sur le nouveau port,
- Ajouter notre premier utilisateur système afin de se connecter avec lui via ssh.
Sécuriser la connexion à distance Si vous n’êtes pas encore connecté depuis la console au serveur (je veux dire la console locale, pas ssh encore), connectez-vous en tant que root, puis exécutez :
Sur la ligne treize du fichier par défaut non modifié (au cas où vous vous poseriez encore la question, tapez “:set number” et appuyez sur entrer en dehors du mode insertion pour obtenir les numéros de ligne) il y a la directive Port 22. Dupliquez-la, changez le numéro de port en 60606 et décommentez.vi /etc/ssh/sshd_config
Ensuite, trouvez (en dehors du mode insertion, appuyez sur “/“ et tapez la phrase que vous recherchez) la directive PermitRootLogin yes, dupliquez-la à nouveau et changez sa valeur en no et décommentez-la également, puis enregistrez le fichier. Oh, et c’est “:noh” pour désactiver la mise en surbrillance.
Redémarrez sshd ensuite :service sshd restartConfiguration d’iptables D’abord, vérifiez les iptables existants :
Dans l’installation par défaut à la position ‘4’, il y aura une directive pour accepter de nouvelles connexions tcp sur le port ssh par défaut, nous devons nous en débarrasser, exécutez donc :iptables -L -v --line-numbersMaintenant, nous devons autoriser les connexions au port 60606 à la place. Exécutez :iptables -D INPUT 4Enfin, pour enregistrer l’état actuel des iptables, exécutez :iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 60606 -j ACCEPTservice iptables save service iptables restartAjouter le premier utilisateur Tout va bien maintenant, sauf pour une chose, nous nous sommes bannis de ssh, puisque root n’est pas autorisé et qu’il n’y a pas encore d’autres utilisateurs système. Il est temps de corriger cela :
Définissez un mot de passe pour cet utilisateur :useradd -c "utilisateur système ownCloud" -m -n cloudadminC’est fait. Vous pourriez définir le mot de passe pour l’utilisateur dans la première commande, mais de cette manière, la valeur du mot de passe sera visible lors de l’entrée dans la fenêtre du terminal et sera également enregistrée dans .bash_history de l’utilisateur root, ce qui n’est pas souhaitable.passwd cloudadmin
Maintenant, vous pouvez vous connecter via ssh en exécutant la commande suivante dans votre fenêtre de terminal sur l’ordinateur local :ssh [email protected] -p60606
Étapes de Pré-Configuration
L’installation du logiciel dans la plupart des cas est assez simple et nous aurions pu ‘vérifier’ la plupart d’entre eux lors de l’installation initiale, mais je préfère faire les choses à la main.
Je divise intentionnellement l’installation en sections.
Connexion en tant que superutilisateur À ce moment précis, vous devriez être à l’invite de la console en tant qu’utilisateur clouddmin. Pour obtenir des privilèges root, exécutez :
su -Dépôts de logiciels Afin d’utiliser le logiciel souhaité, deux dépôts sont nécessaires.
D’abord EPEL, exécutez :Et non, i386 n’est pas une erreur, c’est le même pour les systèmes 32 bits et 64 bits.rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-6.noarch.rpm
Ensuite Remi, exécutez :Maintenant, vérifiez les dépôts epel et remi et, au cas où cela ne serait pas là, définissez enabled=1 en exécutant :rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmEnfin, mettez à jour votre système. Même un CentOS fraîchement installé pourrait nécessiter une mise à jour d’abord. Exécutez :vi /etc/yum.repos.d/epel.repo vi /etc/yum.repos.d/remi.repoyum update -yTemps de précision Il est bon d’être synchronisé avec le reste du monde, exécutez :
yum install ntp service ntpd start chkconfig ntpd on tpdQuelques autres outils Pour rendre ma vie un peu plus facile, j’utilise vim au lieu de vi, htop au lieu de top, elinks pour tester rapidement des choses depuis le terminal et mc, en tant que bon gestionnaire de fichiers à double panneau, wget est requis pour télécharger des choses et man est essentiel lorsque vous voulez lire à peu près n’importe quoi. Exécutez :
yum install vim htop elinks mc wget man -y
Configuration d’ownCloud
Prérequis logiciels Un ensemble de choses php, exécutez :
Éditez php.ini, exécutez :yum install php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsqlIl y a quatre directives à changer,vim /etc/php.ini
l’une devrait être à la ligne 736, directive post_max_size
l’autre à la ligne 848, directive cgi.fix_pathinfo
l’autre à la ligne 885, directive upload_max_filesize
l’autre à la ligne 956, directive date.timezone modifiez-la selon l’emplacement de votre serveur.Au cas où vous ne sauriez pas comment, vous pouvez trouver le nom de votre fuseau horaire en exécutant :[...] post_max_size = 64M [...] cgi.fix_pathinfo = 0 [...] upload_max_filesize = 64M [...] date.timezone = "Europe/Prague" [...]Ensuite, configurez php-fpm pour utiliser un socket unix au lieu de la pile tcp, exécutez :cat /etc/sysconfig/clockÀ partir de la ligne douze, faites-le ressembler à ceci :vim /etc/php-fpm.d/www.confDémarrez php-fpm :;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sockchkconfig php-fpm on service php-fpm startBackend - PostgreSQL Pour l’installer et le configurer, exécutez :
Connectez-vous à postgres en tant qu’utilisateur système postgres, créez un utilisateur de base de données, une base de données et accordez des privilègesyum install postgresql postgresql-libs postgresql-server service postgresql initdb service postgresql start chkconfig postgresql onModifiez le fichier de configuration de postgresql pour autoriser les connexions par mot de passe :su - -c "psql" postgres CREATE USER clouduser WITH PASSWORD 'userpass'; CREATE DATABASE clouddb OWNER clouduser ENCODING 'UTF8'; GRANT ALL PRIVILEGES ON DATABASE clouddb TO clouduser; \qvim /var/lib/pgsql/data/pg_hba.conf
- Recherchez
# Connexions locales IPv4 : host all all 127.0.0.1/32 ident - Et modifiez-le en Maintenant, redémarrez la base de données :
# Connexions locales IPv4 : host all all 127.0.0.1/32 passwordservice postgresql restart
Serveur web nginx Installez, configurez pour démarrer au démarrage, puis arrêtez-le :
Préparez le fichier de configuration pour le site web owncloud :yum install nginx service nginx start chkconfig nginx on service nginx stopvim /etc/nginx/conf.d/owncloud.confMaintenant, créons des certificats pour le serveur, répondez aux questions dans l’invite selon vos paramètres :# rediriger http vers https. server { listen 80; server_name owncloud.example.com; rewrite ^ https://$server_name$request_uri? permanent; # forcer https } # owncloud (ssl/tls) server { listen 443 ssl; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key; server_name owncloud.example.com; root /var/www/owncloud; index index.php; client_max_body_size 64M; # définir la taille maximale de téléchargement # interdire l'accès direct location ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } # ordre d'essai par défaut location / { try_files $uri $uri/ @webdav; } # owncloud WebDAV location @webdav { fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } # activer php location ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS on; include fastcgi_params; } }Rechargez nginx pour activer la nouvelle configuration :mkdir -p /etc/nginx/certs/ cd /etc/nginx/certs/ openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.orig openssl rsa -in server.key.orig -out server.key openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crtservice nginx reloadFichiers et répertoires ownCloud L’installation d’ownCloud consiste à télécharger et décompresser l’archive, avec quelques ajustements côté serveur, exécutez donc :
Et encore une fois, apache comme groupe dans la dernière commande n’est pas une erreur. php-fpm est exécuté par défaut en tant qu’utilisateur apache.cd /tmp wget http://download2.owncloud.org/releases/owncloud-4.0.0.tar.bz2 tar xjf owncloud-4.0.0.tar.bz2 mv owncloud /var/www/ mkdir -p /var/www/owncloud/data chmod 770 /var/www/owncloud/data chown -R root:apache /var/www/owncloudAccéder au site web Ouvrez le port 443 afin de pouvoir accéder au site web, exécutez :
iptables -I INPUT 4 -p tcp -d 192.168.1.100 --dport 443 -j ACCEPT service iptables save service iptables restart
Test de Fonctionnement
Accédez à https://owncloud.example.com via votre navigateur de choix et terminez la procédure d’installation.
Choisissez un nom d’utilisateur et un mot de passe administrateur, choisissez PostgreSQL comme backend de base de données et saisissez les valeurs appropriées dans les paramètres de connexion à la base de données.
Profitez.
Dépannage
Les fichiers journaux se trouvent comme suit :
/var/www/owncloud/data/owncloud.log
/var/log/php-fpm/www-error.log
/var/log/nginx/access.log
/var/log/nginx/error.log
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.