Installation de Framadate

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

Voici un tutoriel pour vous aider à l’installer sur votre serveur.

N’hésitez pas à poser des questions dans les commentaires. Si vous êtes parvenu à l’installer, donnez-nous le lien vers votre instance et dites-nous dans quelle mesure ce tutoriel vous aura été utile :)

Informations
Dans la suite de ce tutoriel, les instructions seront données pour un serveur dédié sous Debian Wheezy avec une base de données MySQL, un serveur Apache, PHP 5.4 (minimum) et Git d’installés.
Nous supposerons que vous avez déjà fait pointer votre nom de domaine sur votre serveur auprès de votre registraire.

Installation

1 – Préparer la terre

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

Pour permettre la traduction des pages dans différentes langues, il faut installer php-gettext s’il ne l’est pas déjà :

apt-get install php-gettext

Puis configurer les langues disponibles sur le serveur :

dpkg-reconfigure locales

Actuellement, Framadate est disponible en allemand (de_DE.UTF8), anglais (en_GB.UTF8), espagnol (es_ES.UTF8) et français (fr_FR.UTF8)

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

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

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

et importez les librairies nécessaires

./composer.phar install

3 – Arroser

MySQL

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

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

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.

À la racine du dossier framadate se trouve un fichier install.mysql.sql (que vous pouvez consulter aussi en ligne sur notre dépôt) permettant de créer les tables de la base de données et d’ajouter un sondage d’exemple. Cliquer sur « Requête SQL », copier le contenu de ce fichier dans la zone de texte et « Exécuter ».

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

Framadate

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

Éditez le fichier app/inc/constants.php.template qui contient les paramètres de configuration et enregistrez-le avec le nom constants.php.

Le paramètres sont assez explicites (les chevrons doivent être enlevés).

const BASE = 'framadate';
const USERBASE = "framadate";
const USERPASSWD = 'votre-mot-de-passe';
const SERVEURBASE = 'localhost';
const BASE_TYPE = 'mysql';

Espace admin

Framadate dispose d’un espace d’administration de l’ensemble des sondages dans le dossier /admin

Pour en restreindre l’accès, il faut ajouter au fichier de configuration Apache de votre site web (fichier /etc/apache2/sites-enabled/votre-domaine.vhost) ce bloc :

<Directory "/var/www/framadate/admin/">
    AuthType Basic
    AuthName "Administration"
    AuthUserFile "/var/www/framadate/admin/.htpasswd"
    Require valid-user
    Order allow,deny
    Allow from all
</Directory>

et créer le fichier .htpasswd contenant l’utilisateur et le mot de passe autorisé.

htpasswd -bc /var/www/framadate/admin/.htpasswd utilisateur mot-de-passe

Réécriture d’URL

Pour activer la réécriture d’URL afin d’avoir des liens sous la forme http://votre-domaine.org/a1b2c3d4e5f6g7h8 au lieu de http://votre-domaine.org/studs.php?sondage=a1b2c3d4e5f6g7h8. Il faut ajouter une ligne AllowOverride All dans le fichier .vhost pour autoriser l’utilisation des .htaccess sur votre domaine et créer un fichier /var/www/framadate/.htaccess contenant ces directives :

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  
  RewriteRule ^([a-z0-9]{16})$ studs.php?sondage=$1
  RewriteRule ^([a-z0-9]{24})/admin$ adminstuds.php?sondage=$1
</IfModule>

Et voilà ! Normalement, ça pousse tout seul ;)

Vus : 1750
Publié par Framablog : 916