Installation · 5 min read · Jan 23, 2026
Installer ownCloud avec SSL et Nginx sur CentOS 6.5
Installer ownCloud avec SSL et Nginx sur CentOS 6.5
Version : 3.0
Auteur : Aaron
CentOS a mis à jour de nombreux paquets, et le post que j’ai écrit il y a 1 an ne fonctionne plus sur CentOS 6.5 mis à jour.
J’ai fait des recherches et il semble que ce sera le premier tutoriel en 2014 sur comment installer owncloud sur centos avec nginx, postgresql et ssl. Vous ne trouverez pas d’installation de CentOS et owncloud avec nginx de nos jours, car la plupart des gens ne savent pas comment résoudre des problèmes simples.
Mon serveur a été affecté et c’est la raison qui m’a poussé à écrire ce post aujourd’hui.
Les paquets dans les dépôts EPEL et CentOS sont obsolètes, tandis que nginx, postgresql et owncloud nécessitent des paquets un peu plus récents. Vous resterez simplement sur la page de connexion sans accéder à vos fichiers, vous grattant la tête et vous demandant ce qui vient de se passer. Les fichiers journaux ne vous montreront pas d’où vient le problème ni owncloud lui-même.
Les exigences d’owncloud sont
PostgreSQL >= 9.0, mais dans EPEL c’est 8.8, il nécessite php 5.3.3 comme minimum mais cela ne fonctionne pas avec cette version, de plus tous ces paquets plus récents nécessiteront la dernière version stable de nginx.
La première chose que nous devrions faire est de supprimer toutes les bibliothèques mysql.
yum remove mysql* mysql-server mysql-devel mysql-libsComme d’habitude, nous allons installer des dépôts tiers, tels que epel, remi et le nouveau : dernier postgresql
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmrpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmrpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-i386/pgdg-centos93-9.3-1.noarch.rpmÉditez le dépôt epel et assurez-vous que le haut est enabled=1
vi /etc/yum.repos.d/epel.repoFaites de même avec le dépôt remi, mais assurez-vous d’activer la version php 5.6,
vi /etc/yum.repos.d/remi.repo

Créez un fichier de configuration de dépôt nginx
vi /etc/yum.repos.d/nginx.repoet ajoutez :
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
Mettez à jour votre serveur CentOS afin d’ajouter ces dépôts tiers
yum updateInstallez les paquets suivants afin de satisfaire les exigences d’owncloud :
yum install nginx postgresql93 postgresql93-libs postgresql93-server wget php-fpm php-gd php-ldap php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-shout php-snmp php-soap php-tidy php-pgsql php-pdoDémarrez PostgreSQL, démarrez nginx temporairement et ajoutez-le aux services de démarrage système avec chkconfig
service postgresql-9.3 initdb
service postgresql-9.3 start
chkconfig postgresql-9.3 on
service nginx start
chkconfig nginx on
service nginx stopCréez un nouvel utilisateur et une nouvelle base de données PostgreSQL.
su - -c "psql" postgresCREATE USER cloud WITH PASSWORD 'userpass';
CREATE DATABASE cloudbase OWNER cloud ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE cloudbase TO cloud;
\qVérifiez et retenez votre fuseau horaire
cat /etc/sysconfig/clockÉditez le fichier de configuration php
vi /etc/php.inipost_max_size = 2Gcgi.fix_pathinfo = 0upload_max_filesize = 2Gdate.timezone = "your/timezone"Éditez le fichier de configuration php-fpm afin d’utiliser tcp au lieu de socket unix
vi /etc/php-fpm.d/www.confAssurez-vous que listen ne pointe pas vers /var/run/php-fpm/php-fpm.sock
listen = 127.0.0.1:9000Démarrez le service php-fpm
chkconfig php-fpm on
service php-fpm startÉditez le fichier de configuration postgresql pour autoriser les connexions par mot de passe :
vi /var/lib/pgsql/9.3/data/pg_hba.confet changez ident par mot de passe - remarquez le curseur dans l’image suivante :

Redémarrez la base de données postgresql service postgresql-9.3 restart
Créez un dossier vide où nous allons stocker nos certificats SSL
cd /etc/nginx
mkdir -p certSi vous êtes familier avec les hôtes virtuels apache, alors le fichier suivant que vous devrez créer est exactement cela.
cd conf.dvi cloud.confupstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name 10.10.10.110; # remplacez par votre nom de domaine ou l'ip interne de votre serveur
return 301 https://$server_name$request_uri; # forcer https
}
server {
listen 443 ssl;
server_name 10.10.10.110; # remplacez par votre nom de domaine ou l'ip interne de votre serveur
ssl_certificate /etc/nginx/cert/server.crt;
ssl_certificate_key /etc/nginx/cert/server.key;
# Chemin vers la racine de votre installation
root /var/www/owncloud/;
client_max_body_size 10G; # définir la taille maximale de téléchargement
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# Les 2 règles suivantes ne sont nécessaires qu'avec webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
}
# Optionnel : définir un long en-tête EXPIRES sur les actifs statiques
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optionnel : Ne pas enregistrer l'accès aux actifs
access_log off;
}
}
J’ai téléchargé ce fichier de configuration nginx sur mon site web, donc au lieu de l’écrire manuellement, tapez simplement wget http://linux.sytes.net/img/nginx1-6.conf.txt et renommez-le en quelque chose comme cloud.conf
Comme vous l’avez spécifié dans l’”hôte virtuel” nginx ci-dessus, notre serveur ownCloud utilisera SSL, alors créons ces certificats, d’accord ?
cd ..
cd cert
openssl req -x509 -nodes -sha384 -days 3650 -newkey rsa:4096 -keyout server.key -out server.crt
chmod 600 server.key
chmod 600 server.csrEnsuite, téléchargez, extrayez l’archive owncloud et définissez les permissions pour le dossier owncloud. Veuillez noter que nous allons télécharger la version de développement d’owncloud.
cd /var/www
wget http://download.owncloud.org/community/daily/owncloud-daily-master.tar.bz2
tar xjf owncloud-daily-master.tar.bz2
mkdir -p owncloud/data
chmod 770 owncloud/data
chmod 777 owncloud/config/
chown -R root:apache owncloud
rm -rf owncloud-daily-master.tar.bz2Autorisez les connexions tcp entrantes aux ports de votre serveur : 80 et 443. Si vous ou quelqu’un d’autre appelle l’ip interne de votre serveur, cela sera redirigé vers https://yourserverinternalip, car vous l’avez spécifié dans l’”hôte virtuel” nginx plus tôt.
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 80 -j ACCEPT
iptables -I INPUT 4 -p tcp -d 10.10.10.110 --dport 443 -j ACCEPTservice iptables save
service iptables restartRedémarrez PostgreSQL une dernière fois, et démarrez nginx avec la nouvelle configuration :
service postgresql-9.3 restart
service nginx startC’est tout, ouvrez votre navigateur et pointez vers l’ip de votre serveur. Choisissez le nom d’utilisateur et le mot de passe que vous souhaitez.

Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.