Hébergement OwnCloud sous CentOS

OwnCloudCet article décrit l’installation et la maintenance d’un serveur OwnCloud sur un serveur dédié tournant sous CentOS 7. OwnCloud est une plateforme de stockage et de partage de fichiers et d’applications en ligne. C’est une alternative à Dropbox, lequel est basé sur un Cloud public. Dans OwnCloud, le stockage de données se fait au sein de l’infrastructure de l’entreprise, et les accès sont soumis à la politique de sécurité informatique de celle-ci.

OwnCloud vous permet de partager certains fichiers et répertoires de votre ordinateur en les synchronisant avec le serveur OwnCloud. Il suffit de définir le ou les répertoires partagés. Leur contenu est immédiatement synchronisé avec le serveur ainsi qu’avec tous les postes clients que vous définissez, que ceux-ci tournent sous Microsoft Windows, sous Mac OS X ou sous Linux. OwnCloud fonctionne également avec les smartphones et les tablettes.

OwnCloud

Prérequis

Configuration de SELinux

Étant donné que nous installons OwnCloud en-dessous de /var/www, tous les fichiers nouvellement créés seront correctement étiquetés httpd_sys_content_t. Rien à signaler de ce côté-là.

OwnCloud doit pouvoir envoyer des mails via Postfix, ce qu’il faut explicitement autoriser.

# setsebool -P httpd_can_sendmail on

Apache possède les droits d’écriture sur une partie de l’arborescence /var/www/slackbox-owncloud/html. Ces droits d’écriture seront définis par le biais des permissions Unix classiques, mais il faut également le spécifier du côté de SELinux.

# setsebool -P httpd_unified on

Installation des modules PHP

En dehors d’une installation minimale de PHP 5.6 avec php56w-mysql, OwnCloud requiert également les modules PHP suivants.

  • php56w-gd
  • php56w-intl
  • php56w-mbstring
  • php56w-mcrypt
  • php56w-process
  • php56w-xml

Installer ces modules avec Yum et relancer Apache.

# yum install php56w-gd php56w-intl php56w-mbstring php56w-mcrypt \
  php56w-process php56w-xml
# systemctl restart httpd

Configuration de l’hôte virtuel

La configuration de l’hôte virtuel autorise les directives placées dans le fichier .htaccess à la racine de l’installation. Le module WebDAV doit être désactivé, étant donné qu’OwnCloud utilise son propre serveur DAV interne SabreDAV. Voici à quoi cela ressemble sur ma machine de test.

# /etc/httpd/conf.d/20-cloud.slackbox.fr.conf

# http://cloud.slackbox.fr -> https://cloud.slackbox.fr
<VirtualHost *:80>
  ServerName cloud.slackbox.fr
  Redirect / https://cloud.slackbox.fr
</VirtualHost>

# https://cloud.slackbox.fr
<VirtualHost _default_:443>
  Header always set Strict-Transport-Security \
    "max-age=63072000; includeSubDomains"
  ServerAdmin info@microlinux.fr
  DocumentRoot "/var/www/slackbox-owncloud/html"
  <Directory "/var/www/slackbox-owncloud/html">
    Options +FollowSymlinks
    AllowOverride All
    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
  ServerName cloud.slackbox.fr:443
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/chemin/vers/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/chemin/vers/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/chemin/vers/fullchain.pem
  BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
  ErrorLog logs/cloud.slackbox.fr-error_log
  CustomLog logs/cloud.slackbox.fr-access_log common
</VirtualHost>

Téléchargement

Créer un répertoire de téléchargement approprié pour ranger OwnCloud.

# mkdir -p /root/webapps/owncloud

Télécharger OwnCloud.

# cd /root/webapps/owncloud
# wget -c \
  https://download.owncloud.org/community/owncloud-10.0.3.tar.bz2

Installation

Créer la base de données.

# mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.52-MariaDB MariaDB Server

MariaDB [(none)]> create database `slackbox-owncloud`;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> grant all on `slackbox-owncloud`.* 
    -> to slackboxuser@localhost 
    -> identified by '********';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye

L’hôte virtuel se situera dans /var/www/slackbox-owncloud/html. Créer le répertoire parent, décompresser l’archive téléchargée à l’intérieur de ce répertoire et renommer le répertoire owncloud résultant en html.

# cd /var/www
# mkdir slackbox-owncloud
# cd slackbox-owncloud
# tar xjf /root/webapps/owncloud/owncloud-10.0.3.tar.bz2
# ls
owncloud
# mv owncloud html

La définition des permissions est quelque peu fastidieuse. Pour nous faciliter la tâche, OwnCloud a publié un petit script shell sur son site, qu’il suffit d’adapter à nos besoins. Le répertoire themes semble avoir disparu lors du passage de la version 9 à la version 10. Dans le doute, nous allons confier sa création au script.

#!/bin/bash
# 
# set-owncloud-permissions.sh

ocpath='/var/www/slackbox-owncloud/html'
htuser='apache'
htgroup='apache' 
rootuser='microlinux'

printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater
mkdir -p $ocpath/themes

printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ

printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
 then
  chmod 0644 ${ocpath}/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
 then
  chmod 0644 ${ocpath}/data/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi

Ranger ce script dans un endroit approprié avant de l’exécuter. Les permissions du répertoire parent /var/www/slackbox-owncloud devront être définies manuellement.

# cd /var/www
# chown microlinux:microlinux slackbox-owncloud
# chmod 0755 slackbox-owncloud 
# cd /usr/local/sbin
# chmod 0700 set-owncloud-permissions.sh
# ./set-owncloud-permissions.sh
Creating possible missing Directories
chmod Files and Directories
chown Directories
chmod/chown .htaccess

À présent, ouvrir l’assistant d’installation dans l’interface web d’OwnCloud.

OwnCloud Installation

  1. Définir un compte administrateur.
  2. Choisir MySQL/MariaDB comme serveur de bases de données.
  3. Renseigner les paramètres de connexion à la base, en précisant le port 3306.
  4. Cliquer sur Terminer l’installation.

À présent, on peut se connecter à OwnCloud avec l’identifiant et le mot de passe de l’administrateur que l’on vient de définir.

OwnCloud Installation

Lors de la première connexion, OwnCloud affiche une info sur les clients pour les différentes plateformes.

OwnCloud Installation

Une fois qu’on a fermé la fenêtre d’infos, voilà comment se présente la configuration par défaut, avec une poignée de documents et d’images qui font office de démo.

OwnCloud Installation

Documentation

Pour plus de détails, voir l’excellent manuel rédigé par Carla Schroder.

Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , , . Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *