Un Cloud maison avec PyDio et Debian 7 (wheezy)

Hello,

Nous allons voir sur ce tuto comment installer PyDio avec Debian 7 (wheezy).
Pour ceux qui ne connaissent pas Pydio, c’est un Dropbox-LIKE open-source, c’est peut être un peu réducteur de le présenter ainsi, mais c’est, à mon sens, sa fonction première. La différence avec Owncloud, c’est qu’il se concentre principalement sur la gestion des fichiers, et ne prétend pas être dans le même catégorie d’application.

Ce tuto ne sera pas aussi complet que le précédent sur l’installation d’Owncloud et Debian 7, car tous simplement les étapes sont très similaire, notamment pour l’accès depuis l’extérieur.
Et je n’ai pas encore eux le temps de prendre le temps de l’installer pour un test plus complet avec une utilisation au quotidien.

Matos utilisés
Pour ce tuto j’ai utilisé une VM (Machine Virtuelle), avec 1Go de RAM et 8Go de capacité de stockage.
J’utiliserais l’ip 192.168.0.100 et les droits ROOT pour l’installation.

I- Installation de Debian 7
L’installation de Debian 7 est déjà expliqué dans cet article : Système de base d’un serveur sous Debian Wheezy (Debian 7)

II- Installation de Pydio

Après avoir installer votre serveur Debian, comme expliqué Étape I passons à l’installation de Pydio

Dans un premier temps, nous allons installés la clé publique de Pydio

1
cd /tmp
1
wget  http://dl.ajaxplorer.info/repos/charles@ajaxplorer.info.gpg.key
1
apt-key add charles@ajaxplorer.info.gpg.key

Ajoutons maintenant le dépôt Pydio, pour cela, nous allons modifier le fichier /etc/apt/sources.list avec votre éditeur de texte préféré, par habitude j’utilise vi

1
vi /etc/apt/sources.list

Et nous y ajoutons ce qui suit

1
2
3
##Pydio repository add###
deb http://dl.ajaxplorer.info/repos/apt stable main
deb-src http://dl.ajaxplorer.info/repos/apt stable main

Mettons à jour les dépots

1
apt-get update

Puis installons Pydio

1
apt-get install pydio

Après l’installation, copiez le fichier conf de pydio dans le répertoire /etc/apache2/sites-enabled/ comme suit :

1
cp /usr/share/doc/pydio/apache2.sample.conf /etc/apache2/sites-enabled/pydio.conf

Comme toute application Web, Pydio a besoin d’une base de données pour fonctionner.
Pour une question de faciliter j’utilise Mysql, mais il faut savoir que vous pouvez choisir un autre SGBD.

1
apt-get install mysql-server  php5-mysql

Un mot de passe pour la gestion de la base en tant qu’administrateur vous sera demandé

Demande du mot de passe MySQL
Demande du mot de passe MySQL

Confirmer le mot de passe saisie

Confirmation du mot de passe MySQL
Confirmation du mot de passe MySQL

Une fois MySQL installé, il faut créer un base de données et un utilisateur qui aura les droits sur cette base.

Connectez vous à MySQL comme suit:

1
mysql -u root -p

Créez la base de données que nous nommerons tous simplement “pydio”

1
CREATE DATABASE pydio;

Maintenant créez l’utilisateur avec le login userpydio (ou autre login de votre choix) comme suit (attention il faut changer ‘mot2passe’ par le votre)

1
CREATE USER userpydio@localhost IDENTIFIED BY 'mot2passe';

Donnez les droits d’administration de la base “pydio” à cette utilisateur

1
GRANT ALL ON pydio.* TO userpydio@localhost;

Appliquez les changements

1
FLUSH PRIVILEGES;

Sortez de la base proprement

1
exit

Ensuite, confirmer les modification en relançant les différents services

1
php5enmod mcrypt
1
service apache2 restart
1
service mysql restart

Normalement arrivé à cette étape, vous pouvez accéder à Pydio via l’URL http://192.168.0.100/pydio
Mais soyez patient, il nous reste quelques étapes pour optimiser l’accès

III- Sécuriser l’accès avec SSL/TLS

Maintenant, nous allons sécuriser l’accès à Pydio via le protocole SSL/TLS et pouvoir accéder au site avec HTTPS.
Comme vous l’avez certainement vu à plusieurs reprise si vous êtes un lecteur régulier de mon blog, cette étape nécessite la création de certificat auto-signé

Pour créer les certificats créez le répertoire /etc/apache2/CertPydio

1
mkdir -p /etc/apache2/CertPydio

Accéder à ce répertoire

1
cd /etc/apache2/CertPydio

Générons les clés comme suit:

1
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out pydio.pem  -keyout pydio.key

Country Name (2 letter code) [AU]: FR
State or Province Name (full name) [Some-State]: RAS
Locality Name (eg, city) [ ]:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:zenzla
Organizational Unit Name (eg, section) [ ]: Saisissez le nom de votre service ou laissez vide.
Common Name (eg, YOUR name) [ ]: IP de la machine (Attention, le CN est très important, le nom doit correspondre à la façon dont vous allez accéder à votre serveur depuis l’extérieur ).
Email Address []:Appuyez sur Entrez

en listant le contenu de CertPydio vous devriez avoir les deux fichiers suivant :

1
2
-rw-r--r-- 1 root root 1704 déc.  22 13:24 pydio.key
-rw-r--r-- 1 root root 1265 déc.  22 13:24 pydio.pem

Copiez chaque fichier dans le bon répertoire

1
 cp pydio.pem /etc/ssl/certs/
1
 cp pydio.key /etc/ssl/private/

Maintenant il faut créer le site Virtuel (VirtualHost) qui écoute le port par défaut du protocole SSL qui est 443.

1
cd /etc/apache2/sites-available
1
vi pydio.vhost

Ce fichier doit contenir ce qui suit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<VirtualHost *:443>

ServerAdmin admin@domain.com
ServerName ajaxplorer.domain.com

SSLEngine on
SSLCertificateFile /etc/ssl/certs/pydio.pem
SSLCertificateKeyFile /etc/ssl/private/pydio.key

DocumentRoot /usr/share/pydio
<Directory "/usr/share/pydio">
Options FollowSymLinks
AllowOverride Limit FileInfo
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/pydio_error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/pydio_access.log combined
</VirtualHost>

Activer le Rewrite et le SSL

1
a2enmod rewrite
1
a2enmod ssl
1
a2ensite pydio.vhost

Pour améliorer ses performance, Pydio recommande de désactiver la mémoire tampon de sortie de PHP

Dans le fichier /etc/php5/apache2/php.ini trouvez la ligne

1
output_buffering = 4096

Et remplacez “4096” par “off”

1
output_buffering = off

Relancer Apache

1
service apache2 restart

Si vous avez une erreur, assurez vous d’avoir bien suivi les étapes précédentes, et que le contenu de pydio.vhost et correcte.

Enfin, pour ne pas avoir de problème de “Charset” lors du lancement de Pydio, modifier le fichier /usr/share/pydio/conf/bootstrap_conf.php

1
vi /usr/share/pydio/conf/bootstrap_conf.php

trouver les lignes suivantes:

1
2
//define("AJXP_LOCALE", "en_EN.UTF-8");
//define("AJXP_LOCALE", "");

Décommentez la première ligne et remplacez “en_EN.UTF-8” par “fr_FR.UTF-8” comme suite

1
2
define("AJXP_LOCALE", "fr_FR.UTF-8");
//define("AJXP_LOCALE", "");

C’est bon, nous arrivons presque à la fin de l’installation.

Vous pouvez dès à présent lancer Pydio via l’URL sécurisée https://192.168.0.100/pydio

Accueil Pydio
Accueil Pydio

Choisissez la langue que vous souhaitez (le Français pour moi), et cliquez sur “Démarrer l’assistant”, pour avoir le menu de l’assistant d’installation Pydio

Assitant d'installation de Pydio
Assitant d’installation de Pydio

Cliquez sur “Accès administrateur” et créez le compte Administrateur de Pydio, j’ai choisi pour l’exemple “Admin”, mais vous pouvez mettre ce que vous voulez

Création du compte Administareur
Création du compte Administareur

Cliquez sur “Options globales” pour changer la langue par défaut, et le message d’accueil si vous le souhaitez.

Cliquez ensuite, sur “Stockage des configurations”
Dans le menu déroulant “Type de stockage” choisir “Database system …”

Choix de la base de données
Choix de la base de données

Vous accédez à un formulaire qui permet de saisir des informations nécessaires à Pydio pour se connecter à la base de données, renseignez-les comme suit:

Activer les notification : Oui
Database : Mysql
Host : localhost
Database : pydio
User : userpydio
Password : mot de passe de l’utilisateur userpydio

Vous pouvez cliquez sur “Essayer de se connecter à la base de données” pour tester si tous vas bien

configuration accès à la BDD
configuration accès à la BDD

Cliquez maintenant sur “Ajouter des utilisateurs” pour créer un utilisateur, puis cliquez sur “Installer Pydio

création d'un utilisateur Pydio
création d’un utilisateur Pydio

Si vous n’avez pas la main pour cliquer sur “Installer Pydio” c’est qu’il y a quelques chose qui cloche, et Pydio ne vous le dit pas explicitement, c’est à vous de déplier une par une les sections précédentes pour voir ou se trouve le problème (Généralement le champs ou se trouve le problème est rouge)

En cliquant sur “Installer Pydio” vous aller voir un étrange avertissement vous disant que Pydio ne peut pas écrire sur le fichier .htaccess, et qu’il faut copier vous même le contenu qu’il vous donne dans ce fichier, ne le faites-pas

Avertissement htaccess
Avertissement htaccess

En vérifiant le fichier .htaccess, le contenu était bel et bien présent comme le montre la commande cat /usr/share/pydio/.htaccess

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# cat /usr/share/pydio/.htaccess
<IfModule mod_rewrite.c>
# You must set the correct values here if you want
# to enable webDAV sharing. The values assume that your
# Pydio installation is at http://yourdomain/
# and that you want the webDAV shares to be accessible via
# http://yourdomain/shares/repository_id/
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^shares ./dav.php [L]
RewriteRule ^api ./rest.php [L]
RewriteRule ^user ./index.php?get_action=user_access_point [L]
RewriteCond %{REQUEST_URI} !^/index
RewriteCond %{REQUEST_URI} !^/plugins
RewriteCond %{REQUEST_URI} ^/dashboard|^/settings|^/welcome|^/ws-
RewriteRule (.*) index.php [L]

#Following lines seem to be necessary if PHP is working
#with apache as CGI or FCGI. Just remove the #
#See http://doc.tiki.org/WebDAV#Note_about_Apache_with_PHP_as_fcgi_or_cgi

#RewriteCond %{HTTP:Authorization} ^(.*)
#RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule>

AddType application/json .jsonroot@monserveur:/usr/share/pydio/conf#

Donc pas la peine de modifier le fichier .htaccess comme le demande l’avertissement.

Actualisez la page pour accéder enfin à l’interface d’accueil de Pydio, qui est en passant magnifique.

Interface d'accueil Pydio
Interface d’accueil Pydio

Il ne vous reste plus qu’a vous connectez, et découvrir cette application qui est puissante, ergonomique et vachement bien foutue.

Comme dit la chanson “Voilààà c’est Finii” 🙂

N’hésitez pas à m’apporter vos remarques et commentaires ou rapportez un bug, même si j’ai effectué plusieurs tests
La réalisation de tel tuto prends du temps, même beaucoup de temps, n’hésitez à m’encourager en laissant un message sur le blog ou via Twitter .

Zenzla

À propos de Zenzla

Je suis un passionné des logiciels libres, et tous ce qui tourne autour!! j'essaie de plus en plus de me débarrasser de l'oppression des Big Brothers du net. Je suis aussi Formateur en base de donnée, Gnu/Linux et bien autre chose.

4 réflexions sur “ Un Cloud maison avec PyDio et Debian 7 (wheezy) ”

  • 13 décembre, 2017 à 18 h 37 min
    Permalink

    Bonsoir,
    je galère pour installer le client windows Pydio . J’ai l’erreur Access to the server is forbidden.

    Je suis sur WAMP.
    Qui pourrait m’aider?
    Merci d’avance.

    Réponse
  • 3 février, 2016 à 10 h 15 min
    Permalink

    Merci ZENZLA,
    Ce tuto m’a beaucoup aidé.
    Il est excellent.
    Bravo et encore merci pour le partage ^^
    Mc

    Réponse
  • 18 décembre, 2015 à 11 h 02 min
    Permalink

    Merci pour se tuto très bien documenté, il te manque cependant dans le tutoriel une étape pour paramétrer la taille des fichiers d’upload envoyé

    Réponse
  • 3 avril, 2015 à 22 h 29 min
    Permalink

    Merci pour le tuto, il m’a été bien utile 🙂

    Réponse

Laisser un commentaire

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