Skip to content

Créer sa propre installation

Alexis edited this page Dec 18, 2024 · 5 revisions

Cette page indique la démarche permettant d'installer une instance de Freedictions sur votre serveur, qu'il soit public ou privé.

Warning

VOUS êtes responsables du contenu publié par les utilisateurs de votre installation. Ceci inclus les noms d'utilisateurs, les prédictions, leurs précisions et leurs choix de réponse.

EN AUCUN CAS les auteurs initiaux (MarioSwitch et yoshakami), ainsi que tous les contributeurs ayant participé au projet, de quelque manière que ce soit, ne sauraient être tenus responsables de tout contenu publié sur une installation publique.

Pré-requis

Pour exécuter une instance de Freedictions, vous devez posséder les éléments suivants :

  • Serveur Web : Apache pouvant exécuter des scripts PHP
  • Système de Gestion de Bases de Données (SGBD) : MariaDB

Si vous n'avez pas ces logiciels, téléchargez et installez-les en suivant les guides disponibles sur leurs sites respectifs.

Note

Pour le développement, nous utilisons les versions suivantes : Apache 2.4.58, PHP 8.2.12 et MariaDB 10.4.32 (+ phpMyAdmin 5.2.1).

Freedictions peut tout à fait fonctionner avec des versions plus anciennes et/ou plus récentes, mais nous ne pouvons garantir son fonctionnement intégral.

Activation des réécritures d'URL

Les réécritures d'URL (appelées RewriteRule) sont nécessaires au bon fonctionnement du projet.

Pour s'assurer de leur activation, vérifiez les points suivants :

  • Le module mod_rewrite est activé.
    1. Localisez votre fichier de configuration Apache (situé à /etc/apache2/conf/httpd.conf (sur une distribution Linux) ou à C:/xampp/apache/conf/httpd.conf (sur Windows, en utilisant la solution tout-en-un XAMPP)
    2. Dans ce fichier, cherchez (en utilisant Ctrl+F) la ligne indiquant LoadModule rewrite_module modules/mod_rewrite.so et vérifiez qu'elle est décommentée (sans # devant). Si la ligne est commentée, retirez le #, puis sauvegardez le fichier (Ctrl+S).
  • La réécriture d'URL est autorisée pour le répertoire
    1. Dans ce même fichier, repérez (toujours en utilisant Ctrl+F) <Directory "/var/www/html"> (distribution Linux) ou <Directory "C:/xampp/htdocs"> (avec XAMPP) par exemple)
    2. À l'intérieur de ce bloc, vérifiez que AllowOverride est paramétré sur All. La ligne doit ressembler à AllowOverride All. Si ce n'est pas le cas, remplacez le texte pour obtenir le résultat ci-avant.

Une fois ces deux points vérifiés, redémarrez votre serveur Apache pour appliquer les changements. Il pourra alors effectuer des réécritures d'URL.

Initialisation de l'installation

Téléchargez la dernière version du projet :

  • Soit en cliquant ici, puis en extrayant le fichier Freedictions-main.zip une fois téléchargé. Vous obtenez alors un dossier (ou répertoire) nommé Freedictions-main.
  • Soit en saisissant git clone https://github.com/MarioSwitch/Freedictions dans un terminal. Vous obtenez alors un dossier (ou répertoire) nommé Freedictions.

Placez ensuite le contenu de ce répertoire (strings, svg, views, .gitignore, ..., time.js.php) là où vous le souhaitez.

Si vous choisissez de déplacer le dossier (et non son contenu), vous devrez ajouter son nom au chemin d'accès (ex. C:/xampp/htdocs/Freedictions-main ou /var/www/html/Freedictions. Pour des installations publiques, cela implique également que l'URL sera de la forme votre-domaine.fr/Freedictions par exemple.

Configuration de l'installation

Fichier config.php

Pour que votre installation soit fonctionnelle, vous devez déclarer un certain nombre de constantes de configuration dans un fichier nommé config.php situé à la racine du projet.

  • Toutes les constantes commençant par CONFIG_DATABASE servent à la connexion à la base de données. Modifiez ces paramètres afin de les faire correspondre à votre installation.

Voici un exemple type de fichier :

<?php
// Configuration de la connexion à la base de données
const CONFIG_DATABASE_HOST = "localhost"; // Adresse du serveur de la base de données
const CONFIG_DATABASE_NAME = "predictions"; // Nom de la base de données
const CONFIG_DATABASE_USER = "root"; // Nom d'un utilisateur MariaDB/MySQL ayant accès à la base de données
const CONFIG_DATABASE_PASSWORD = ""; // Mot de passe de cet utilisateur

// Autres configurations
const CONFIG_COOKIES_EXPIRATION = 30*24*60*60; // Durée de validité des cookies (connexion et paramètres) sans navigation sur le site de la part de l'utilisateur (en secondes).
const CONFIG_PATH = "/freedictions"; // Répertoire où se situe le site sur le serveur web (par rapport à « /var/www/html » ou à « C:\xampp\htdocs » par exemple), SANS « / » ou « \ » final ! Il peut être vide.

Autres configurations

  • N'oubliez pas de mettre à jour la ligne 2 du fichier .htaccessRewriteBase /freedictions/ »), en remplaçant « /freedictions/ » par le répertoire où se situe votre installation. Il s'agit normalement du même chemin que la constante CONFIG_PATH, à l'exception de l'ajout du « / » ou « \ » final.

  • N'oubliez pas non plus de définir UTC comme fuseau horaire par défaut du SGBD. Pour cela, modifiez le fichier de configuration (/etc/mysql/my.cnf sur une distribution Linux), et ajoutez-y (à la fin du fichier) :

[mysqld]
default_time_zone = '+00:00'

Sauvegardez, puis redémarrez votre SGBD pour appliquer les modifications.

Tests et finalisation

N'oubliez pas d'élever (au moins) un compte au rang de modérateur. Pour ce faire, mettez à jour votre base de données en modifiant l'attribut mod des utilisateurs concernés (remplacez le 0 initialement présent par un 1).

Attention : ces utilisateurs pourront créer des prédictions sans approbation, supprimer d'autres comptes, etc.

N'élevez au rang de modérateur que les utilisateurs en qui vous avez confiance.