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

Comme 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.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -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.repo

Faites 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.repo

et 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 update

Installez 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-pdo

Dé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 stop

Créez un nouvel utilisateur et une nouvelle base de données PostgreSQL.

su - -c "psql" postgres
CREATE USER cloud WITH PASSWORD 'userpass';  
CREATE DATABASE cloudbase OWNER cloud ENCODING 'UTF8';  
GRANT ALL PRIVILEGES ON DATABASE cloudbase TO cloud;  
\q

Vérifiez et retenez votre fuseau horaire

cat /etc/sysconfig/clock

Éditez le fichier de configuration php

vi /etc/php.ini
post_max_size = 2G
cgi.fix_pathinfo = 0
upload_max_filesize = 2G
date.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.conf

Assurez-vous que listen ne pointe pas vers /var/run/php-fpm/php-fpm.sock

listen = 127.0.0.1:9000

Dé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.conf

et 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 cert

Si vous êtes familier avec les hôtes virtuels apache, alors le fichier suivant que vous devrez créer est exactement cela.

cd conf.d
vi cloud.conf
upstream 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.csr

Ensuite, 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.bz2

Autorisez 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 ACCEPT
service iptables save  
service iptables restart

Redémarrez PostgreSQL une dernière fois, et démarrez nginx avec la nouvelle configuration :

service postgresql-9.3 restart  
service nginx start

C’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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.