summaryrefslogtreecommitdiff
path: root/lisez-moi.txt
blob: 9f2b5bee5b119107f0bd6f53bea37cc4c6a14562 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Pré-requis:

- Un serveur apache exécutant PHP.
- Le n'utilise pas de base de données mais un ensemble de fichiers HTML.
- Le module GD de PHP pour créer des miniatures des photos (bande passante).
- La possibilité d'utiliser un fichier .htaccess pour la sécurité (du mot de passe admin en particulier).
- Le responsable du site (Melaine) ne doit pas utiliser un navigateur trop vieux (ckeditor).


Informations:

Le site n'utilise pas de base de données mais à la place un ensemble de fichiers. Le dossier data contient des dossiers "html" et "images", ainsi qu'un dossier 'json'.
- Les premiers contiennent le texte sous forme de fichiers HTML.
- Les seconds les images ainsi qu'un dossier "thumbnails" (chargement rapide des pages).
Le code suit une architecture modèle-vue-contrôleur, il n'utilise pas de framework.
- Il n'est pas possible pour l'instant d'uploader du multimedia (son et video). Peut-être plus tard.
- Il n'est pas possible non plus d'embarquer du multimedia (son et vidéo hébergé ailleurs). Peut-être plus tard.


Installation:

- Copier tous les fichiers sur le serveur.
- Autoriser en écriture le dossier "data" et tout son contenu, ça se fait depuis la racine du site avec la commande:
chmod -R 777 data
Le php se chargera des ajustements (supprimer l'autorisation des fichiers en exécution, permettre à l'utilisateur de manipuler les nouveaux fichiers sans accès root, créer un backup des données).
- Autoriser le .htaccess (normalement par une manipulation dans le fichier /etc/php/php.ini du serveur)
- Augmenter la taille maximale des fichiers (par défaut de 2Mo) pouvant être téléchargés dans le php.ini, ainsi que dans le fichier model/Image.php. Une taille max de 5Mo est très raisonnable.


Redirections:

Si les redirections en cas d'erreur 404 ne fonctionnent pas c'est sans doute que le .htaccess ne pointe pas vers le fichier erreur404.php.
En effet, la racine du serveur pourrait bien, du point de vue d'apache, être le dossier parent à celui du site.


architecture Modèle-Vue-Contrôleur (MVC):

              modèle
                ^ |
                | v
 routeur --> contrôleur
                    |
                    v
                   vue ---> envoi de la page au client

-> sens dans lequel le code est interprété
pour retrouver quelque chose dans le code, il suffit de suivre un chemin linéaire dont le départ est ici
pas de croisement, pas de marche arrière, impossible de se perdre!
autre avantage: les chemins sont tous relatifs et sont toujours bons, parce que tous les fichiers sont "inclus" dans index.php

Les dossiers:
-> controller: traitements en PHP pur
-> model: interface entre PHP et données, on y trouve le SQL ou la manipulation de fichiers textes, le PHP y est orienté objet
-> view: le PHP y produit le HTML, il construit les pages,
le HTML figé est placé à part dans le fichier view/template.php
-> public: contient CSS, JS, images, polices, medias, etc, il est utilisé par template.php
-> lib: les bibliothèques, on y trouve en particulier le ckeditor qui occupe une place centrale dans le projet, et aussi htmLawed qui nettoie le HTML produit par l'éditeur (failles XSS)
-> data: comme son nom l'indique

Quelques fichiers spéciaux (indépendants de index.php):
- imageAJAX.php traite les requêtes AJAX envoyées par l'éditeur
- .htaccess pour la sécurité (configurer le httpd.conf d'apache peut être nécessaire)
- erreur404.php (fonctionne avec .htaccess)

le dossier data et son contenu sont "normalement" autorisés en écriture pour deux raisons:
- placer le contenu pré-existant avec son client FTP
- autoriser PHP (sinon, c'est comme si on avait un site statique)
-> pour pouvoir installer le site en n'ayant qu'à modifier les droits du dossier data uniquement et éviter les situations pénibles ou l'utilisateur est bloqué sans rien comprendre,
on pourra créer ou utiliser des sauvegardes au format ZIP depuis une page spéciale accessible avec le compte admin