plateforme coopérative de partage d'information 1.9 Version de PLOOPI
PLOOPI est une plateforme web de travail collaboratif (GNU GPLv2) permettant à ses utilisateurs d'échanger et de diffuser des données. Il s'agit d'un logiciel sécurisé, robuste et optimisé dont le code source a été de nombreuses fois audité. PLOOPI se présente également sous la forme d'un framework de développement permettant de faciliter la mise en oeuvre de modules métiers basés sur des fonctionnalités avancées de travail collaboratif.

Documentation

Installation de PLOOPI

Prérequis

Nous recommandons d’utiliser la distribution GNU/Linux Debian ou Ubuntu mais toute autre distribution peut convenir.
Le présent tutoriel est basé sur une Debian Lenny fraîchement installée. (Installation basique)
Mise à jour avec des commentaires pour l’installation avec Debian Squeeze !

Avant de démarrer l’installation de PLOOPI, vous devez vérifier que vous disposez des éléments suivants :

  • GNU/Linux
  • Apache 1.3x ou 2.x
  • PHP 5.x
  • MySQL 5.x

Certaines extensions de PHP sont également obligatoires pour un fonctionnement optimal :

  • php5-mcrypt
  • php5-gd
  • php5-dev (pour pecl)
  • php-pear : détail des classes ci-après

Remarques :

  • Ploopi n’a pas été testé en environnement Windows, installé côté serveur
  • Ploopi doit fonctionner avec lighttpd – tests à venir.

Vous pouvez très facilement installer les paquets prérequis pour un bon fonctionnement de PLOOPI (en root) :

1
2
3
4
5
6
7
apt-get install apache2 mysql-server php5 php5-mysql php5-gd php5-cli php5-mcrypt php-pear php5-dev make
pear channel-update pear.php.net
pear upgrade PEAR
pear upgrade-all
pear install --alldeps Cache_Lite HTTP_Request XML_Feed_Parser Xml_Beautifier XML_Serializer-0.20.0 OLE-1.0.0RC1 Spreadsheet_Excel_Writer-0.9.1 PEAR_info Net_UserAgent_Detect Text_Highlighter-0.7.1 Text_Diff-1.1.0 Net_SMTP Mail Mail_Mime
pecl channel-update pecl.php.net
pecl install stem

L’installation d’un serveur MySQL sous Debian Lenny demande automatiquement un mot de passe pour le compte “root”.

Si, lors de votre installation du serveur MySQL, aucun mot de passe ne vous est demandé, ou si vous souhaitez le modifier, exécutez les commandes suivantes :

1
mysql -u root

1
2
UPDATE mysql.user SET Password=PASSWORD('nouveau_mot_de_passe') WHERE User='root';
FLUSH PRIVILEGES;

Si vous êtes derrière un proxy, vous pouvez configurer pear pour utiliser les paramètres de votre proxy

1
pear config-set http_proxy http://login:password@ip_du_proxy:port_du_proxy

Optionnel : Installation des outils pour l’extraction des contenus, utilisés par le module de gestion de documents

1
apt-get install catdoc xpdf-utils jhead unrtf unzip zip

Paramétrage du serveur

PHP

Le module pecl/stem n’est pas chargé par défaut avec PHP.
Pour charger stem, créez par exemple un fichier stem.ini dans le dossier /etc/php5/conf.d :

1
nano /etc/php5/conf.d/stem.ini

Rajoutez les éléments suivants :

1
2
# configuration for pecl stem module
extension=stem.so

Dans le fichier de configuration de PHP, /etc/php5/apache2/php.ini :

1
nano /etc/php5/apache2/php.ini

  • Modifiez la configuration des “magic quotes” (jusque Debian Lenny)

1
magic_quotes_gpc = Off

  • Paramétrez le fuseau horaire par défaut (sinon PHP vous renvoie Europe/Berlin) :

1
date.timezone = Europe/Paris

  • Désactivez le buffer interne de php (à partir de Debian Squeeze)

1
output_buffering = Off

  • Optionnel (conseillé pour le module gestion de documents) :

1
2
3
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 16M

Apache

1. Modifiez le charset par défaut, dans le fichier /etc/apache2/conf.d/charset :

1
nano /etc/apache2/conf.d/charset

Remplacez

#AddDefaultCharset UTF-8

par

1
AddDefaultCharset ISO-8859-15

2. Activez le module “rewrite” (en root)

1
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled

3. Créez un Virtual Host

Pour cela, ajoutez un fichier dans /etc/apache2/sites-available/ :

1
nano /etc/apache2/sites-available/ploopi

puis insérez les lignes suivantes :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost *:80>
        ServerName monploopi
 
        DocumentRoot /var/www/monploopi/
 
        <Directory /var/www/monploopi/>
                AllowOverride All
        </Directory>
 
        # config CGI
    ScriptAlias /cgi/ /var/www/monploopi/cgi/
        <Directory "/var/www/monploopi/cgi/">
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

Remarque : La configuration CGI permet d’uploader des fichiers sans limite de taille avec une barre de progression.
Il est par contre nécessaire de disposer de l’interpréteur php en ligne de commande (paquet php5-cli)

Pour finir, il faut activer le virtualhost et recharger la configuration d’Apache :

1
2
ln -s /etc/apache2/sites-available/ploopi /etc/apache2/sites-enabled/000-ploopi
/etc/init.d/apache2 reload

4. Vérifiez la directive ServerTokens

La directive ServerTokens située dans le fichier /etc/apache2/conf.d/security spécifie la chaîne d’identification du serveur.
La valeur de cette directive peut être choisie parmi les valeurs suivantes : Prod | Major | Minor | Minimal | OS | Full

Il est recommandé de fixer la valeur à “Prod” (valeur la moins verbeuse) pour un site en production mais si tel est le cas, l’installation du portail ne pourra pas contrôler précisément la configuration de votre serveur. Il est conseillé de régler cette valeur à “Major” pendant la phase d’installation du portail. Vous pouvez ensuite redéfinir la valeur de la directive ServerTokens à “Prod”.

Apache/Optimisations

Pour aller un peu plus loin et optimiser le comportement de Ploopi nous pouvons activer les modules “expires” et “headers”.
Le module “expires” est utilisé par le fichier “.htaccess” intégré à Ploopi pour gérer la mise en cache des fichiers statiques.
Le module “headers” va nous permettre de désactiver les etag

1
2
3
ln -s /etc/apache2/mods-available/expires.load /etc/apache2/mods-enabled/
 
ln -s /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/

Ensuite il faut créer un fichier “disabled_etag.conf”.

1
nano /etc/apache2/conf.d/disable_etag.conf

Contenu du fichier “disabled_etag.conf” :

1
2
Header unset ETag
FileETag None

Enfin, on peut recharger Apache

1
/etc/init.d/apache2 reload

MySQL (optionnel)

Editez le fichier de configuration de MySQL

1
nano /etc/mysql/my.cnf

Et commentez les lignes suivantes pour désactiver la création des logs (souvent très lourds) :

1
2
3
#log_bin                        = /var/log/mysql/mysql-bin.log
#expire_logs_days = 10
#max_binlog_size = 100M

Installation

Méthode 1 (recommandée) : téléchargement d’une archive

1. Téléchargez la dernière version de PLOOPI

2. Assurez-vous d’avoir le paquet bzip2 sur votre système, sinon :

1
apt-get install bzip2

2. Copiez le contenu de l’archive sur votre serveur web :

1
2
tar jxvf ploopi_stable.tar.bz2
mv ploopi_stable/ /var/www/ploopi_x.x

Au passage, on renomme le dossier ploopi_stable en ploopi_x.x.

4. Dans le fichier hosts du système client :

1
nano /etc/hosts

Rajoutez la ligne suivante :

1
adresse_ip_du_serveur     monploopi

Méthode 2 (développeur) : téléchargement des sources depuis SVN

On suppose que le dossier d’installation de PLOOPI est le suivant : /var/www/ploopi_x.x

1. Si vous n’avez pas le client svn, vous pouvez l’installer simplement avec cette commande (toujours en root !) :

1
apt-get install subversion

2. Puis utilisez svn pour télécharger la dernière version :

1
svn export http://svn.ploopi.org/trunk /var/www/ploopi_x.x --force

3. Enfin, renommez le fichier .htaccess_modele en .htaccess

1
mv /var/www/ploopi_x.x/.htaccess_modele /var/www/ploopi_x.x/.htaccess

Suite et fin…

On supposera pour la suite que le dossier précédemment créé se situe dans /var/www/ploopi_x.x/

3. Assurez-vous que votre serveur web puisse accéder au dossier nouvellement créé (nous parlerons de http://mondomaine/monploopi/)

4. Vérifiez les droits d’accès en lecture/écriture pour le processus apache. L’idéal est d’appliquer les règles suivantes (en root) :

1
2
3
4
5
6
7
8
9
cd /var/www/ploopi_x.x/
 
chown -R www-data:www-data .
find . -type d -print0 | xargs -0 -n 1 chmod 500
find . -type f -print0 | xargs -0 -n 1 chmod 400
find {data,config,modules} -type d -print0 | xargs -0 -n 1 chmod 700
find {data,config,modules} -type f -print0 | xargs -0 -n 1 chmod 600
find bin -type f -print0 | xargs -0 -n 1 chmod 500
chmod 500 ./cgi/upload.cgi

4. Ouvrez un navigateur à l’adresse http://mondomaine/monploopi/ – Vous devriez arriver sur la page d’installation.

5. Lorsque l’installation est terminée, il est fortement recommandé de supprimer le fichier ./config/install.php et de modifier les droits d‘écriture pour apache sur le dossier ./config

1
2
3
rm -rf ./config/install.php
find config -type d -print0 | xargs -0 -n 1 chmod 500
find config -type f -print0 | xargs -0 -n 1 chmod 400

Configuration .htaccess

Si vous utilisez un virtual host vous pouvez laisser la configuration par défaut.

Un fichier .htaccess est inclus à la racine de Ploopi.
Ce fichier peut ne pas être interprété par Apache.
Vérifiez pour cela que la directive AllowOverride n’est pas configurée à “None”.

Il peut être nécessaire de d’adapter le fichier .htaccess à votre configuration.
Notamment la directive RewriteBase qui doit être adapté au dossier contenant ploopi.

Si vous utilisez ploopi en sous dossier d’un site existant, indiquez le chemin relatif de ce dossier dans la directive RewriteBase.

1
RewriteBase /monploopi/

Bénéficier des vignettes de prévisualisation des fichiers

Cette fonction est notamment utilisée par la GED et plus généralement, par tous les modules usant de la classe mimethumb du framework.
Elle permet la prévisualisation des contenus de nombreux formats de fichier.

1
apt-get install inkscape ffmpeg html2ps php5-imagick imagemagick ghostscript

Si vous avez accès à un webservice jodconvert la gestion de documents pourra utiliser ce webservice afin de convertir les documents de la suite office de microsoft (en indiquant l’URL du webservice dans les paramètres du module Doc) sinon

1
apt-get install openoffice.org

(Il faut au moins disposer d’une version 2.4 ou >, et bien vérifier que le paquet openoffice.org-headless est installé)

Pour que les différents appels externes fonctionnent il est nécessaire qu’ils aient accès au dossier ~/ du user appelant (www-data dans notre cas). Ce répertoire correspond par défaut à /var/www.
2 solutions possibles :

  • soit donner a apache l’accès en écriture au dossier /var/www

1
2
3
cd /var
chmod 775 www
chown root:www-data www

  • soit créer les répertoires suivant :

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
cd /var/www
 
# Pour inkscape (>= 0.47 ?)
mkdir .config
chmod 700 .config
chown www-data:www-data .config
 
# Pour inkscape (< 0.47 ?)
mkdir .inkscape
chmod 700 .inkscape
chown www-data:www-data .inkscape
 
 
# Pour imagick (?)
mkdir .gnome2
chmod 700 .gnome2
chown www-data:www-data .gnome2
 
# Pour openoffice.org (>= 3.0)
mkdir .openoffice.org
chmod 700 .openoffice.org
chown www-data:www-data .openoffice.org
 
# Pour openoffice.org (< 3.0)
mkdir .openoffice.org2
chmod 700 .openoffice.org2
chown www-data:www-data .openoffice.org2





Retour en haut de la page