Installation d’un serveur de type Framadate

L’article original se trouve ici.

Framadate est le logiciel de création de sondages que nous développons et proposons comme service en ligne. Il est initialement basé sur le logiciel Studs développé par l’université de Strasbourg et que nous avons largement remanié.

Installation

1 – Préparer la terre

Pour ma part, je débute avec une vm DEBIAN quasi vierge.
J’installe le serveur web apache 2 et quelques utilitaires.

apt-get install apache2 htop screen git php5 php5-intl mysql-server php5-mysql
service mysql start
service apache2 restart

Et avant de me lancer dans le noir, je fais un snapshot de ma vm.

Tout d’abord, connectez-vous en tant que root sur votre serveur et créez un compte utilisateur framadate ainsi que le dossier /var/www/framadate dans lequel seront copiés les fichiers avec les droits d’accès correspondants.

useradd framadate
groupadd framadate
mkdir /var/www/framadate
chown framadate:framadate -R /var/www/framadate

2 – Semer

Connectez-vous avec l’utilisateur framadate : su framadate -s /bin/bash

Puis, téléchargez les fichiers de notre dépôt avec Git depuis le dossier /var/www/framadate et basculez sur la dernière version stable (dans l’exemple 1.0.2).

cd /var/www/framadate
git clone https://framagit.org/framasoft/framadate.git .
git checkout 1.0.2

(Normalement ce point est déja traité) : Installez également l’extension php intl :

sudo apt-get install php5-intl

Framadate s’appuie sur le logiciel Composer pour importer les librairies dont il dépend. Pour l’installer, lancez la commande

php -r "readfile('https://getcomposer.org/installer') ;" | php

Moi là, comme ça j’ai une erreur : « Unable to create [..] Permission denied ».
On dirait que l’utilisateur Framadate ne peut pas créer le ou les répertoire(s) exigé.
Je vais donc passer en root pour relancer la commande.

su root
php -r "readfile('https://getcomposer.org/installer') ;" | php

Par contre, suite à cela, tout ce qui est créé est restreins aux droits root.
On va donc corriger le tire pour l’utilisateur framadate

chown framadate:framadate -R /var/www/framadate

puis importez les librairies nécessaires

./composer.phar install

Sauf que là : même topo !
Je vois des messages d’erreur à gogo relatif à des problèmes de version php.
Celle qui s’est automatiquement installée chez moi est une 5.4.45, et à l’heure  j’écris ces lignes, il semble que la version 5.5 soit requise … Damned !

3 – Arroser

MySQL

Il faut maintenant créer la base de données et configurer Framadate.

(Si vous ne l’avez pas fait depuis le début) Installez tout d’abord le paquet mysql-server (notez le mot de passe root) et démarrez MySQL : service mysql start

Créez un utilisateur et une base de données framadate. Sur votre serveur dédié vous pouvez utiliser PhpMyAdmin qui est souvent pré-installé, sinon voici comment faire avec Adminer.

Téléchargez Adminer en ligne de commande (toujours depuis le dossier /var/www/framadate).

wget -O adminer.php http://www.adminer.org/latest-mysql.php

Attention, à ce stade la configuration du serveur web apache2 pointe sur le répertoire /var/www/html.
Par conséquent, je me place tout d’abord à cet endroit avant de charger l’utilitaire adminer.

cd /var/www/html
wget -O adminer.php http://www.adminer.org/latest-mysql.php

Connectez-vous avec le compte root MySQL sur votre-nom-de-domaine.org/adminer.php et cliquez sur « Créer une base de données ».
Remplissez le nom de la base de données et le type d’encodage, ici framadatelatin_swedish_ci.
Une fois créée, cliquez sur « Privilèges » et « Créer un utilisateur ».
Remplissez les champs Serveur localhost, Utilisateur framadate, Mot de passe, Privilèges `framadate`.* et cochez la case All privileges.

Par sécurité, vous pouvez supprimer le fichier adminer.php qui n’est plus nécessaire.

rm /var/www/html/adminer.php

Framadate

Maintenant que la base de données est prête, il faut configurer Framadate pour pouvoir s’en servir.

Rendez-vous ensuite sur la page votre-nom-de-domaine.org/admin/install.php. Et remplissez le formulaire avec comme chaîne de connexion mysql:host=localhost;dbname=framadate;port=3306, l’utilisateur framadate et le mot de passe tel que vous l’avez défini à l’étape précédente.

Alors, à ce stade un sript php check les prérequis (fournir capture écran ?) nous dit qu’il nous manque des droits en écriture sur un répertoire du type /var/www/framadate/admin. Ce qui est normal puisque – si l’on a respecté la recette – l’intégralité des droits sur /var/www/framadate est attribué à l’utilisateur « framadate ». Sachant que par défaut, lorsque l’on passe sur un navigateur web, c’est le compte www-data que le serveur web apache2 utilise !

Je décide donc de remédier à cela et donne les droits au dit utilisateur

chmod -R www-data:www-data /var/www/framadate

Et pourtant, cela n’arrange pas tout…

2017-01-13-18_54_58-verifications-de-linstallation

Et là : je bloque car je ne vois pas où se situe ce problème de dossier de compilation de templates …