diff options
Diffstat (limited to 'controller/installation.php')
| -rw-r--r-- | controller/installation.php | 190 |
1 files changed, 95 insertions, 95 deletions
diff --git a/controller/installation.php b/controller/installation.php index fc8c900..91521e2 100644 --- a/controller/installation.php +++ b/controller/installation.php | |||
| @@ -1,95 +1,95 @@ | |||
| 1 | <?php | 1 | <?php |
| 2 | // premier démarrage du site | 2 | // premier démarrage du site |
| 3 | function installation() | 3 | function installation() |
| 4 | { | 4 | { |
| 5 | // les chemins dans le .htaccess seront des chemins relatifs, | 5 | // les chemins dans le .htaccess seront des chemins relatifs, |
| 6 | // la racine dépendant du serveur, donc de l'hébergeur, | 6 | // la racine dépendant du serveur, donc de l'hébergeur, |
| 7 | // par défaut c'est /var/www/ pour debian, etc | 7 | // par défaut c'est /var/www/ pour debian, etc |
| 8 | // c'est /var/www/nom_de_domaine/ avec des hôtes virtuels | 8 | // c'est /var/www/nom_de_domaine/ avec des hôtes virtuels |
| 9 | // on utilisera donc des chemins adaptés à des hôtes virtuels | 9 | // on utilisera donc des chemins adaptés à des hôtes virtuels |
| 10 | 10 | ||
| 11 | // le nom du serveur sera le nom de domaine tout court | 11 | // le nom du serveur sera le nom de domaine tout court |
| 12 | // la racine sera /var/www/nom_de_domaine | 12 | // la racine sera /var/www/nom_de_domaine |
| 13 | 13 | ||
| 14 | //echo('document root: ' . $_SERVER['DOCUMENT_ROOT'] . '<br />'); | 14 | //echo('document root: ' . $_SERVER['DOCUMENT_ROOT'] . '<br />'); |
| 15 | //echo('server name: ' . $_SERVER['SERVER_NAME'] . '<br /'); | 15 | //echo('server name: ' . $_SERVER['SERVER_NAME'] . '<br /'); |
| 16 | // echo('getcwd: ' . getcwd() . '<br />'); | 16 | // echo('getcwd: ' . getcwd() . '<br />'); |
| 17 | // echo('dirname: ' . dirname(__FILE__) . '<br />'); | 17 | // echo('dirname: ' . dirname(__FILE__) . '<br />'); |
| 18 | // echo('file: ' . __FILE__ . '<br />'); | 18 | // echo('file: ' . __FILE__ . '<br />'); |
| 19 | // echo('dir: ' . __DIR__. '<br />'); | 19 | // echo('dir: ' . __DIR__. '<br />'); |
| 20 | 20 | ||
| 21 | //$lien_htaccess = $_SERVER['SERVER_NAME'] . "/.htaccess"; | 21 | //$lien_htaccess = $_SERVER['SERVER_NAME'] . "/.htaccess"; |
| 22 | //$nomDuSite = "melaine"; | 22 | //$nomDuSite = "melaine"; |
| 23 | 23 | ||
| 24 | // créer le .htaccess | 24 | // créer le .htaccess |
| 25 | if(!file_exists(".htaccess")) | 25 | if(!file_exists(".htaccess")) |
| 26 | { | 26 | { |
| 27 | echo('<p style="color: red;" >Le .htaccess semble absent ce qui rend le site vulnérable aux attaques, veuillez contacter l\'administrateur.</p>'); | 27 | echo('<p style="color: red;" >Le .htaccess semble absent ce qui rend le site vulnérable aux attaques, veuillez contacter l\'administrateur.</p>'); |
| 28 | //$contenu = "# redirection en cas d'erreur 404\nErrorDocument 404 http://" . $_SERVER['SERVER_NAME'] . "/" . $nomDuSite . "/erreur404.php\n# Interdire exploration du répertoire\nOptions All -Indexes"; | 28 | //$contenu = "# redirection en cas d'erreur 404\nErrorDocument 404 http://" . $_SERVER['SERVER_NAME'] . "/" . $nomDuSite . "/erreur404.php\n# Interdire exploration du répertoire\nOptions All -Indexes"; |
| 29 | // $fichier = fopen('.htaccess', 'w'); | 29 | // $fichier = fopen('.htaccess', 'w'); |
| 30 | // fputs($fichier, $contenu); | 30 | // fputs($fichier, $contenu); |
| 31 | // fclose($fichier); | 31 | // fclose($fichier); |
| 32 | // chmod('.htaccess', 0666); // mettre 0644 en production | 32 | // chmod('.htaccess', 0666); // mettre 0644 en production |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | // droits en lecture et écriture dans le cas d'une migration | 35 | // droits en lecture et écriture dans le cas d'une migration |
| 36 | // tester si le site est "vide" et prévoir un formulaire permettant d'upload le fichier .zip | 36 | // tester si le site est "vide" et prévoir un formulaire permettant d'upload le fichier .zip |
| 37 | // contenant toutes les données qu'il est possible de créer depuis le mode admin | 37 | // contenant toutes les données qu'il est possible de créer depuis le mode admin |
| 38 | // cette méthode a deux intérêts: | 38 | // cette méthode a deux intérêts: |
| 39 | // - facilité pour l'utilisateur | 39 | // - facilité pour l'utilisateur |
| 40 | // - toutes les données sont la "possession" du serveur apache, | 40 | // - toutes les données sont la "possession" du serveur apache, |
| 41 | // on prévient ainsi tous les futurs problèmes de droits | 41 | // on prévient ainsi tous les futurs problèmes de droits |
| 42 | 42 | ||
| 43 | // dans le cas de l'utilisation d'une base de données, le fichiers zip devrait contenir un "dump" | 43 | // dans le cas de l'utilisation d'une base de données, le fichiers zip devrait contenir un "dump" |
| 44 | // (un fichier .sql), à voir si php est capable d'obtenir ou redonner ce fichier à la BDD | 44 | // (un fichier .sql), à voir si php est capable d'obtenir ou redonner ce fichier à la BDD |
| 45 | 45 | ||
| 46 | // créer les dossiers (fait également à l'extraction du zip de données) | 46 | // créer les dossiers (fait également à l'extraction du zip de données) |
| 47 | // attention: ne fonctionne pas sans une manipulation préalable | 47 | // attention: ne fonctionne pas sans une manipulation préalable |
| 48 | // - modifier soit-même les droits du dossier data (777), quoique 111 serait pas mal non plus | 48 | // - modifier soit-même les droits du dossier data (777), quoique 111 serait pas mal non plus |
| 49 | // - modifier ceux du dossier parent (nom du site) avec son client FTP à la mise en ligne chez l'hébergeur et ensuite remettre tout comme avant | 49 | // - modifier ceux du dossier parent (nom du site) avec son client FTP à la mise en ligne chez l'hébergeur et ensuite remettre tout comme avant |
| 50 | 50 | ||
| 51 | // le 0 devant signifie que le nombre est en octal | 51 | // le 0 devant signifie que le nombre est en octal |
| 52 | $droitsDossiers = 0777; // mettre 0700 à la fin | 52 | $droitsDossiers = 0777; // mettre 0700 à la fin |
| 53 | 53 | ||
| 54 | $listePages = array('melaine', 'discographie', 'concerts', 'presse', 'ateliers', 'liens', 'peinture', 'archives'); | 54 | $listePages = array('melaine', 'discographie', 'concerts', 'presse', 'ateliers', 'liens', 'peinture', 'archives'); |
| 55 | foreach ($listePages as $page) | 55 | foreach ($listePages as $page) |
| 56 | { | 56 | { |
| 57 | if(!file_exists('data/' . $page)) | 57 | if(!file_exists('data/' . $page)) |
| 58 | { | 58 | { |
| 59 | mkdir('data/' . $page); | 59 | mkdir('data/' . $page); |
| 60 | chmod('data/' . $page, $droitsDossiers); | 60 | chmod('data/' . $page, $droitsDossiers); |
| 61 | } | 61 | } |
| 62 | if(!file_exists('data/' . $page . '/html')) | 62 | if(!file_exists('data/' . $page . '/html')) |
| 63 | { | 63 | { |
| 64 | mkdir('data/' . $page . '/html'); | 64 | mkdir('data/' . $page . '/html'); |
| 65 | chmod('data/' . $page . '/html', $droitsDossiers); | 65 | chmod('data/' . $page . '/html', $droitsDossiers); |
| 66 | } | 66 | } |
| 67 | if(!file_exists('data/' . $page . '/images')) | 67 | if(!file_exists('data/' . $page . '/images')) |
| 68 | { | 68 | { |
| 69 | mkdir('data/' . $page . '/images'); | 69 | mkdir('data/' . $page . '/images'); |
| 70 | chmod('data/' . $page . '/images', $droitsDossiers); | 70 | chmod('data/' . $page . '/images', $droitsDossiers); |
| 71 | } | 71 | } |
| 72 | // if(!file_exists('data/' . $page . '/multimedia')) | 72 | // if(!file_exists('data/' . $page . '/multimedia')) |
| 73 | // { | 73 | // { |
| 74 | // mkdir('data/' . $page . '/multimedia'); | 74 | // mkdir('data/' . $page . '/multimedia'); |
| 75 | // chmod('data/' . $page . '/multimedia', 0777); | 75 | // chmod('data/' . $page . '/multimedia', 0777); |
| 76 | // } | 76 | // } |
| 77 | } | 77 | } |
| 78 | // dossier supplémentaire dans discographie | 78 | // dossier supplémentaire dans discographie |
| 79 | if(!file_exists('data/discographie/json')) | 79 | if(!file_exists('data/discographie/json')) |
| 80 | { | 80 | { |
| 81 | mkdir('data/discographie/json'); | 81 | mkdir('data/discographie/json'); |
| 82 | chmod('data/discographie/json', $droitsDossiers); | 82 | chmod('data/discographie/json', $droitsDossiers); |
| 83 | } | 83 | } |
| 84 | // fichier password.txt | 84 | // fichier password.txt |
| 85 | if(!file_exists('data/password.txt')) | 85 | if(!file_exists('data/password.txt')) |
| 86 | { | 86 | { |
| 87 | touch('data/password.txt'); | 87 | touch('data/password.txt'); |
| 88 | chmod('data/password.txt', 0600); | 88 | chmod('data/password.txt', 0600); |
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | // le modèle donnera les droits 0666 (octal) aux nouveaux fichiers à l'intérieur des dossiers | 91 | // le modèle donnera les droits 0666 (octal) aux nouveaux fichiers à l'intérieur des dossiers |
| 92 | 92 | ||
| 93 | // création d'un mot de passe si password.txt est vide | 93 | // création d'un mot de passe si password.txt est vide |
| 94 | createPassword(); | 94 | createPassword(); |
| 95 | } | 95 | } |
