Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| doc:galette [07/11/2009 20:24] – xavier | doc:galette [20/11/2014 14:02] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Mini-audit de Galette ====== | ||
| + | ===== Généralités ===== | ||
| + | |||
| + | * Galette : Gestionnaire d' | ||
| + | * Site officiel : [[http:// | ||
| + | * Version testée : 0.63.2 (06/ | ||
| + | ===== C'est parti ===== | ||
| + | ==== Téléchargement et décompression de l' | ||
| + | |||
| + | Commençons par nous procurer le code de la version 0.63.2 : | ||
| + | |||
| + | <code bash> | ||
| + | wget http:// | ||
| + | tar xzf galette-0.63.2.tgz | ||
| + | mv galette-0.63.2 galette | ||
| + | cd galette | ||
| + | </ | ||
| + | |||
| + | Observons les permissions des fichiers fournis : | ||
| + | <code bash> | ||
| + | find . -type f -perm /111 -print0 | xargs -0 /bin/ls -ald | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier 10728 nov. 12 2006 ./ | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier 10145 juin 13 2008 ./ | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier 10692 oct. 6 20:56 ./ | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | -rwxr-x--- 1 xavier xavier | ||
| + | </ | ||
| + | |||
| + | Ces fichiers ont-ils vraiment besoin d'un flag exécutable ? Cela peut se comprendre pour les scripts utilitaires (*.py) mais beaucoup moins pour : | ||
| + | * les templates ('' | ||
| + | * les scripts PHP ('' | ||
| + | * la documentation ('' | ||
| + | |||
| + | Détail : | ||
| + | < | ||
| + | -rw-r----- | ||
| + | </ | ||
| + | Fallait-il vraiment laisser cela dans le paquet final ? | ||
| + | ==== Installation ==== | ||
| + | <code bash> | ||
| + | vim docs/ | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Requis : - Serveur web supportant PHP : | ||
| + | Apache est une bonne option | ||
| + | Galette a été testé sur Apache 1.3.22 et 1.3.26 | ||
| + | - PHP (Au moins la version 4.1) | ||
| + | Galette a été testé avec PHP 4.1.2 et 4.3.3 | ||
| + | - Base de données (MySQL ou PostgreSQL) | ||
| + | Galette a été testé sur MySQL 3.23.49 et PostgresSQL | ||
| + | 7.0.2 et 7.2.1 (version récente recommandée) | ||
| + | </ | ||
| + | |||
| + | Sans vouloir remettre en cause la pertinence des tests upstream, n'en serions-nous point à Apache 2.2, PHP 5.2.11, MySQL 5.1 et PostgreSQL 8.4.1 ? | ||
| + | |||
| + | < | ||
| + | Il vous faut maintenant créer un utilisateur et une base pour Galette sur | ||
| + | votre serveur SQL (MySQL ou PostgreSQL). L' | ||
| + | tous les droits sur la base créée pour Galette. | ||
| + | |||
| + | Se reporter à la documentation de votre serveur SQL pour ce faire. | ||
| + | Web. | ||
| + | </ | ||
| + | |||
| + | Pour ce test, nous choisirons le premier truc qui nous tombera sous la main, à savoir du MySQL. | ||
| + | Création des structures par un script d' | ||
| + | <code mysql> | ||
| + | GRANT ALL PRIVILEGES ON `galette` . * TO ' | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | Connectez-vous ensuite au sous répertoire " | ||
| + | Dans notre exemple, il s'agit de http:// | ||
| + | |||
| + | Vous n'avez plus qu'à vous laissez guider par les 10 étapes de l' | ||
| + | Web. | ||
| + | </ | ||
| + | |||
| + | Rendons-nous joyeusement sur '' | ||
| + | < | ||
| + | Merci mod_suphp. | ||
| + | < | ||
| + | Si ce n'est pas déjà fait, créez une base de données et un utilisateur pour Galette. | ||
| + | Les droits nécessaires sont CREATE, DROP, DELETE, UPDATE, SELECT et INSERT. | ||
| + | </ | ||
| + | $#%#$%$# Pouvait pas le dire plus tôt non ? | ||
| + | <code mysql> | ||
| + | REVOKE ALL PRIVILEGES ON galette. * FROM galette_user@localhost; | ||
| + | REVOKE GRANT OPTION ON galette. * FROM galette_user@localhost; | ||
| + | GRANT CREATE, DROP, DELETE, UPDATE, SELECT, INSERT ON galette.* TO galette_user@localhost; | ||
| + | </ | ||
| + | |||
| + | Remplissons le formulaire pour la connexion à la base de données et passons à l' | ||
| + | < | ||
| + | Si c'est pas beau la vie. Créons les structures maintenant : | ||
| + | |||
| + | < | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_adherents ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_cotisations ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_transactions ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_statuts ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_types_cotisation ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_preferences ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_logs ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_field_types ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_dynamic_fields ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE `galette_pictures` ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_l10n ... | ||
| + | DROP TABLE IF ... | ||
| + | CREATE TABLE galette_tmppasswds ... | ||
| + | (Les erreurs sur les opérations DROP et RENAME peuvent être ignorées) | ||
| + | Les tables ont été correctement créées. | ||
| + | </ | ||
| + | Ah, c' | ||
| + | |||
| + | < | ||
| + | Alors, utilisateur " | ||
| + | |||
| + | < | ||
| + | Fichier de configuration crée (includes/ | ||
| + | Paramètres sauvegardés dans la base de données | ||
| + | </ | ||
| + | |||
| + | Voyons ce fichier immédiatement après installation : | ||
| + | < | ||
| + | -rw------- 1 xavier xavier 298 2009-11-07 19:25:45 includes/ | ||
| + | </ | ||
| + | Les permissions sur ce fichier sont nickels. Est-ce volontaire ? D' | ||
| + | |||
| + | < | ||
| + | Une fois le script d' | ||
| + | fonctionne, il est fortement conseillé de supprimer le dossier install/. | ||
| + | </ | ||
| + | Voilà un sage conseil. | ||
| + | |||
| + | ==== Utilisation ==== | ||
| + | On arrive ensuite sur galette/ | ||
| + | ==== Petite balade dans le code ==== | ||
| + | |||
| + | Dans index.php, à partir de la ligne 56 : | ||
| + | <code php> | ||
| + | if ( | ||
| + | ($_POST[" | ||
| + | ($_POST[" | ||
| + | ) | ||
| + | { | ||
| + | $_SESSION[" | ||
| + | $_SESSION[" | ||
| + | $_SESSION[" | ||
| + | $_SESSION[" | ||
| + | dblog(" | ||
| + | } | ||
| + | </ | ||
| + | Intéressant : si on arrive à lire le MD5 du mot de passe de l' | ||
| + | |||
| + | Dans includes/ | ||
| + | <code php> | ||
| + | function txt_sqls($champ) { | ||
| + | return "'" | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Cette fonction, utilisée 6 fois dans le reste du code, paraît un peu légère par rapport à des fonctions plus spécialisées telles que : | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | Observons maintenant les diverses bibliothèques fournies avec galette : | ||
| + | ^ Lib ^ Version utilisée | ||
| + | | [[http:// | ||
| + | | [[http:// | ||
| + | | [[http:// | ||
| + | |||
| + | La plupart des autres fichiers font état d'un copyright 2003-2004. | ||