Installation de Framadate

Classé dans : Cultiver son jardin | 23
image_pdfimage_print

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 web Apache (ou NginX), PHP 5.4 (minimum), Postfix (ou Exim ; pour l’envoi des courriels) 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

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 0.9.3).

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

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

et importez les librairies nécessaires

./composer.phar install
./composer.phar update

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.

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.

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.

Si la page ne s’affiche pas, vérifiez qu’un dossier `/var/www/framadate/tpl_c` a bien été créé avec des droits en écriture suffisant.

À l’installation, les tables de la base de données et le fichier app/inc/config.php sont créés. Le fichier app/inc/config.php contient d’autres paramètres de configuration facultatifs que vous pouvez modifier.

Vous êtes ensuite redirigé vers la page de « migration » qui sert à contrôler que les tables et données sont dans le bon format. Pour les mises à jour ultérieures, il faudra passer par cette page après remplacement des fichiers.

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

(l’utilitaire htpasswd se trouve dans le paquet apache2-utils)

Pour protéger les fichiers .htaccess et .htpasswd, pensez à ajouter également ceci :

<FilesMatch "^\.ht.*">
deny from all
satisfy all
ErrorDocument 403 "Accès refusé."
</FilesMatch>

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 renommer le fichier /var/www/framadate/htaccess.txt en /var/www/framadate/.htaccess

Et voilà ! Normalement, ça pousse tout seul 😉

Informations
En complément, voici un tutoriel pour installer Framadate sur Ubuntu 14.04 de Patrick Harmel, sous licence GFDL.

23 Réponses

  1. Super! Je vais essayer tout cela, éventuellement en // de celle en production car déjà bien utilisée par nos assocs!
    Merci!

  2. […] de robotiques, et sans doute l’installation de la nouvelle version de FRAMADATE, dont les tutoriels mis à jour vont nous permettre de faire des installations simples, et bien sûr toutes les autres […]

  3. Larry G. Wapnitsky

    Would this be relatively easy to install on a hosted system?

    Thank you,
    Larry

  4. Hello

    I tried to install framadate a few times and always get this error when i try to start the install.php under http://www.myspace.ch/new/admin/install.php.

    Warning: require_once(/usr/home/myspace.ch/htdocs/new/app/inc/../../vendor/autoload.php): failed to open stream: No such file or directory in /usr/home/myspace.ch/htdocs/new/app/inc/init.php on line 23

    Fatal error: require_once(): Failed opening required ‘/usr/home/myspace.ch/htdocs/new/app/inc/../../vendor/autoload.php’ (include_path=’.:/usr/local/lib/php’) in /usr/home/myspace.ch/htdocs/new/app/inc/init.php on line 23

    What could be the problem?

    I am running an older version under http://www.myspace.ch which i installed with no problems. Also the Composer data was no problem. In the newer version, the whole vendor folder is missing. Is there a full package with all the needed files in it?

    Thank you very much for your help.
    Andreas

  5. Jerome Zeiliger

    Bravo et Merci !
    Mais petit problème d’install (sur une Debian)

    admin/install.php me donne une page blanche
    et les logs disent:

    [Wed Feb 03 17:30:36 2016] [error] [client 90.52.110.183] PHP Fatal error: Uncaught –> Smarty: unable to write file /var/www/framadate/app/inc/../..//tpl_c/wrt56b22b2c1e2e57_88604723 <– \n thrown in /var/www/framadate/vendor/smarty/smarty/libs/sysplugins/smarty_internal_write_file.php on line 46

    comme si il y avait un pb de path: ../..//tpl_c (ce double slash) pour créer tpl_c plutôt que de permissions ?
    Une idée ?

  6. Est-ce que sur un serveur mutualisé de type OVH on peut directement passer à l’étape de la création de la base de données ?
    Car quand je lance install.php j’ai une page blanche, je n’ai pas encore créer les tables mais quand même ça me semble étrange.

    • La page install.php est probablement blanche parce qu’il manque des librairies. Il faut les installer avec Composer (étape « Semer »). On prévoit de proposer un package déployable sur les serveurs mutualisés mais pour le moment nous n’avons pris en compte que les serveurs dédiés.

      Mais ceci dit, en préparant l’installation des librairies en local et en uploadant le tout sur le serveur mutualisé, on devrait pouvoir poursuivre les étapes suivantes du tutoriel.

      • Oui effectivement c’est cette étape qui m’a bloqué. Ce n’est pas de mon niveau.
        Quels sont les fichiers à télécharger et mettre dans le dossier de Framadate pour poursuivre ?
        En tout cas, merci de votre réponse !

  7. Bonjour,
    j’ai voulu tester rapidement et j’ai lancé l’install sur xampp windows (avant une install linux).
    Tout se passe bien avec composer et l’install est réussi
    je créé des sondages (que je vois dans l’espace d’admin) mais par contre je ne peux pas y accèder j’ai un problème qui vient de l’adresse.

    Objet non trouvé!

    L’URL demandée n’a pas pu être trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d’informer l’auteur de cette page de cette erreur.

    Si vous pensez qu’il s’agit d’une erreur du serveur, veuillez contacter le webmestre.

    Error 404

    localhost
    Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.19

    par avance merci

    • en cherchant un peu l’erreur provient de l’option « URL_PROPRE » qu’il faut mettre à false dans app/inc/config.php

  8. Merci pour ce tuto ! J’ai un peu galéré pour mettre tout bien avec Nginx (notamment ne pas oublier le paquet permettant à php5 de s’interfacer avec MySQL…no comment), et je viens apporter mes deux sous pour activer pleinement l’accès en HTTPS pour ceux qui le souhaite.

    En partant du principe que vous avez une infra efficace prête à l’emploi : un certif Let’s Encrypt (what else?) en place sur un reverse proxy Nginx. Ce serveur proxy pointe quant à lui sur votre instance Framadate en HTTP. Il faut alors ajouter le bout de code suivant pour éviter de se retrouver avec une partie s’affichant en HTTP et l’autre en HTTPS :

    Extrait du fichier INSTALL_FRAMADATE/app/inc/init.php
    —-
    use Framadate\FramaDB;
    use Framadate\Repositories\RepositoryFactory;

    // Autoloading of dependencies with Composer
    require_once __DIR__ . ‘/../../vendor/autoload.php’;
    require_once __DIR__ . ‘/../../vendor/o80/i18n/src/shortcuts.php’;

    /* modif pour HTTPS */
    $_SERVER[« HTTPS »] = « on »;
    /* Fin modif */
    —-

    Ce petit bout de code indique à PHP de s’adresser en HTTPS, ainsi Firefox ne « censure » plus le reste du contenu, et on peut pleinement utiliser ce merveilleux outil !

  9. Bonjour,
    utilisateur pour une association de D oodle, installer framadate sur notre domaine dédié (chez 1and1) via Filezilla m’aurait intéressé pour retrouver un stockage propriétaire.

    peu expérimenté, j’ai quand même réussi à installer kanboard sans difficulté , par exemple.

    le tutoriel ci-dessus ne me parle pas.
    existe t-il le même tutoriel avec filezilla ?

    où pensez vous qu’il est plus rentable pour moi d’apprendre à comprendre le tutoriel ci-dessus ?

    merci de votre avis.

  10. Bonjour, c’est la troisième fois que j’installe framadate mais cette fois-ci sur un nouveau serveur tout beau tout propre…enfin je crois… avec ISPconfig 3 dessus un agréable nginx.
    Mais là je rage un peu, j’ai une erreur 500, sans message d’erreur de plus, dès que le fichier config.php est généré… Impossible de faire la migration !
    Apparemment c’est le init de la connexion qui marche pas… chose bizarre puisque les paramètres sont acceptés (donc corrects) avant que le fichier app/inc/config.php ne soit créé… et là j’ai l’erreur 500 mais aucun message à l’écran ni dans les logs… Je suis un peu perdu :/

    • Est-ce que les dépendances sont bien installées avec composer ?
      Est-ce qu’il y a bien un dossier tpl_c de créé à la racine ?
      Tous les fichiers appartiennent bien à l’utilisateur web*/client* ?
      Quand vous parlez des logs, vous regardez bien dans /var/www/votre-site.com/log/error.log (on utilise aussi ISPConfig + Nginx pour framadate.org) ?

      • Djyp

        oui à toutes ces questions !

        Alors au début l’erreur dû au init je la voyais jsutement dans /var/www/votre-site.com/log/error.log et maintenant je la vois juste dans access.log, donc sans détail sur son origine :/

    • J’ai enfin réussi !! Ça a été dur et l’erreur était stupide !! Dans le titre de l’instance y’avait le nom du client qui comporte un apostrophe (simple quote)…. voilà ça a tout fait planter… Comme quoi si notre clavier faisait la différence entre la simple quote et le vrai caractère d’apostrophe on n’en serait pas là à tenter de gérer c’est addslashes et des stripslashes !

  11. Ah oui et si j’ai pas su d’où ça venait c’est qu’il y avait un @ devant l’import du config.php… Les @ en prod c’est le mal !

  12. HELP!
    Installed Framadate on our company server (http://doodle.amptown.de) cause I think its a nice system.
    But admin-area (http://doodle.amptown.de/admin/) shows just empty list, and I dont understand how to add a new poll. What I’m doing wrong?
    Sorry, I don’t understand french. Can anybody help me?
    Thanx, Tomm

  13. Hello,

    after filling out the installation form, I get the error:

    PHP Notice: Undefined variable: connect in /daten/htdocs/framadate/admin/migration.php on line 47
    [error] [client ] PHP Fatal error: Call to a member function allTables() on null in /daten/htdocs/framadate/admin/migration.php on line 47

    previous I get the error:

    PHP Fatal error: Uncaught –> Smarty: unable to write file /daten/htdocs/framadate/app/inc/../..//tpl_c/wrt5766f196595cc4_28840889 <– \n thrown in /daten/htdocs/framadate/vendor/smarty/smarty/libs/sysplugins/smarty_internal_write_file.php on line 46

    I do a link from tpl, that resolve the error

    My system:

    Gentoo
    PHP 5.6

    Any clue?
    Thanks

    Frank

  14. Nicolas M.

    Bonjour.

    Je viens de procéder à l’installation de Framadate sur une machine virtuelle, j’ai suivi la procédure de bout en bout et j’ai évité/rencontré quelques écueils que j’ai su régler grâce à l’excellente documentation ainsi qu’aux commentaires des utilisateurs ayants précédemment posté des questions par ici.

    Je tiens à vous féliciter pour tout le travail effectué, en qualité de jeune utilisateur de Framadate, que je trouve vraiment formidable.

    Néanmoins, je rencontre un léger un problème …

    Je me rends sur la page de création d’un soudage, je remplis tout les champs nécessaires d’informations diverses et lorsque j’appuie sur le bouton « Créer le sondage » j’ai une malheureuse erreur « Not Found » :

    Not Found

    The requested URL /ePCVj4RVy8RQK515WqM9tdgW/admin was not found on this server.

    Alors je puis aisément comprendre le sens de ce message, en regardant ce qui se trame lorsque j’appuie sur le bouton j’ai ceci dans le journal  » /var/log/apache2/access.log  » :

    [03/Aug/2016:15:57:37 +0200] « GET /ePCVj4RVy8RQK515WqM9tdgW/admin HTTP/1.1 » 404 524 « http://10.252.100.106/create_date_poll.php » « Mozilla/5.0 [……………….]

    Et là je sèche.

    J’ai vérifié les droits, j’ai à priori bien indiquer le répertoire de départ dans le fichier de configuration d’Apache, j’arrive bien à page de migration et donc à créer des sondages … Je ne vois pas ce qui coince …

    Sauriez-vous éventuellement éclairer ma lanterne ?

    D’avance merci.

    • Nicolas M.

      Je me suis précipité, j’ai loupé un précédent commentaire relatant la même déconvenue, mais avec la solution juste après ! Du tout tout fonctionne à merveille.

      Encore merci pour votre fantastique travail.

  15. Bonjour,

    Framadate avec MySQL fonctionne très bien, mais je veux utiliser ma base de données centrale PostgreSQL pour Framadate (car j’ai pas envie d’avoir une base locale sur mon serveur web). Dans le fichier INSTALL.md du git, on voit des lignes relatives à PostgreSQL, on pourrait donc croire que le soft est compatible avec PostgreSQL. Cependant après plusieurs tentative, impossible de faire fonctionner Framadate v0.9.6 dernière en date avec pgsql. Après avoir remplis le formulaire d’installation (et accessoirement créer une base sur pgsql pour Framadate avec l’utilisateur qui va bien), on obtient une error 500 sur la page admin/migration.php (page blanche). Ça veut donc dire que le script php d’installation à bien réussi à contacter le bdd pgsql (sinon on a un message d’erreur si il n’y arrive pas) mais il s’est heurter sur un os. Après avoir regarder votre code, j’ai des doutes sur le support d’une base autre que MySQL. Donc, Framadate est-il compatible avec PostgreSQL de la même manière que MySQL ? Tirez les choses aux claires svp. Sinon bon boulot, c’est vraiment mieux que studs core !

Laissez un commentaire