summaryrefslogtreecommitdiff
path: root/controller/installation.php
diff options
context:
space:
mode:
Diffstat (limited to 'controller/installation.php')
-rw-r--r--controller/installation.php92
1 files changed, 37 insertions, 55 deletions
diff --git a/controller/installation.php b/controller/installation.php
index 1c90026..b2a687c 100644
--- a/controller/installation.php
+++ b/controller/installation.php
@@ -1,54 +1,36 @@
1<?php 1<?php
2// controller/installation.php
3
2// premier démarrage du site 4// premier démarrage du site
3function installation() 5function installation()
4{ 6{
5 // les chemins dans le .htaccess seront des chemins relatifs, 7 // présence du .htaccess
6 // la racine dépendant du serveur, donc de l'hébergeur,
7 // par défaut c'est /var/www/ pour debian, etc
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
10
11 // le nom du serveur sera le nom de domaine tout court
12 // la racine sera /var/www/nom_de_domaine
13
14 //echo('document root: ' . $_SERVER['DOCUMENT_ROOT'] . '<br />');
15 //echo('server name: ' . $_SERVER['SERVER_NAME'] . '<br /');
16 // echo('getcwd: ' . getcwd() . '<br />');
17 // echo('dirname: ' . dirname(__FILE__) . '<br />');
18 // echo('file: ' . __FILE__ . '<br />');
19 // echo('dir: ' . __DIR__. '<br />');
20
21 //$lien_htaccess = $_SERVER['SERVER_NAME'] . "/.htaccess";
22 //$nomDuSite = "melaine";
23
24 // créer le .htaccess
25 if(!file_exists(".htaccess")) 8 if(!file_exists(".htaccess"))
26 { 9 {
27 echo('<p style="color: red;" >Le .htaccess semble absent ce qui rend le site vulnérable, veuillez contacter l\'administrateur.</p>'); 10 $contenu = "ErrorDocument 404 /erreur404.php";
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"; 11
12 echo('<p style="color: orange; text-align:center;" >Le .htaccess est absent.<br/>
13 Si vous ne savez pas de quoi il s\'agit, contactez le responsable du site.<br/>
14 Sinon, veuillez créer un fichier nommé .htaccess à la racine du site et y copier-coller la ligne suivante:<br/><br/>
15 <i>' . $contenu . '</i></p>');
16
17 // Pour le créer
18 // laisser commenté, la création risque d'échouer
29 // $fichier = fopen('.htaccess', 'w'); 19 // $fichier = fopen('.htaccess', 'w');
30 // fputs($fichier, $contenu); 20 // fputs($fichier, $contenu);
31 // fclose($fichier); 21 // fclose($fichier);
32 // chmod('.htaccess', 0666); // mettre 0644 en production 22 // chmod('.htaccess', 0666); // mettre 0644 en production
33 } 23 }
34 24
35 // droits en lecture et écriture dans le cas d'une migration 25
36 // tester si le site est "vide" et prévoir un formulaire permettant d'upload le fichier .zip 26 // dans le cas de l'utilisation d'une base de données, le fichiers zip devrait contenir un "dump" (un fichier .sql),
37 // contenant toutes les données qu'il est possible de créer depuis le mode admin 27 // à voir si php est capable d'obtenir ou redonner ce fichier à la BDD
38 // cette méthode a deux intérêts:
39 // - facilité pour l'utilisateur
40 // - toutes les données sont la "possession" du serveur apache,
41 // on prévient ainsi tous les futurs problèmes de droits
42
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
45 28
46 // créer les dossiers (fait également à l'extraction du zip de données)
47 // attention: ne fonctionne pas sans une manipulation préalable
48 // - modifier soit-même les droits du dossier data pour 777
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 29
51 // création des dossiers 30 // création des dossiers
31 // attention: ne fonctionne pas sans une manipulation préalable
32 // - créer le dossier data à la racine du site
33 // - lui donner les droits du dossier data pour 777
52 34
53 // valeur en octal 35 // valeur en octal
54 $droitsDossiers = 0777; // mettre 0755 en production 36 $droitsDossiers = 0777; // mettre 0755 en production
@@ -61,22 +43,13 @@ function installation()
61 require('view/backup.php'); 43 require('view/backup.php');
62 exit(); 44 exit();
63 } 45 }
64 if(!touch('data')) 46 if(!touch('data')) // test autorisation en écriture
65 { 47 {
66 $erreur = 'data'; 48 $erreur = 'data';
67 $title = 'Écriture non autorisée dans le dossier data'; 49 $title = 'Écriture non autorisée dans le dossier data';
68 require('view/backup.php'); 50 require('view/backup.php');
69 exit(); 51 exit();
70 } 52 }
71
72 function createIndexPHP($path, $droitsFichiers)
73 {
74 $content = "<?php\nheader('Location: ../index.php');\nexit();";
75 $file = fopen($path, 'w');
76 fputs($file, $content);
77 fclose($file);
78 chmod($path, $droitsFichiers);
79 }
80 53
81 if(!file_exists('data/index.php')) 54 if(!file_exists('data/index.php'))
82 { 55 {
@@ -113,6 +86,15 @@ function installation()
113 { 86 {
114 createIndexPHP('data/' . $page . '/images/index.php', $droitsFichiers); 87 createIndexPHP('data/' . $page . '/images/index.php', $droitsFichiers);
115 } 88 }
89 if(!file_exists('data/' . $page . '/images-mini'))
90 {
91 mkdir('data/' . $page . '/images-mini');
92 chmod('data/' . $page . '/images-mini', $droitsDossiers);
93 }
94 if(!file_exists('data/' . $page . '/images-mini/index.html'))
95 {
96 createIndexPHP('data/' . $page . '/images-mini/index.php', $droitsFichiers);
97 }
116 // if(!file_exists('data/' . $page . '/multimedia')) 98 // if(!file_exists('data/' . $page . '/multimedia'))
117 // { 99 // {
118 // mkdir('data/' . $page . '/multimedia'); 100 // mkdir('data/' . $page . '/multimedia');
@@ -129,15 +111,6 @@ function installation()
129 { 111 {
130 createIndexPHP('data/discographie/json/index.php', $droitsFichiers); 112 createIndexPHP('data/discographie/json/index.php', $droitsFichiers);
131 } 113 }
132 if(!file_exists('data/discographie/images-mini'))
133 {
134 mkdir('data/discographie/images-mini');
135 chmod('data/discographie/images-mini', $droitsDossiers);
136 }
137 if(!file_exists('data/discographie/images-mini/index.html'))
138 {
139 createIndexPHP('data/discographie/images-mini/index.php', $droitsFichiers);
140 }
141 // fichiers temporaires pour upload des grosses archives 114 // fichiers temporaires pour upload des grosses archives
142 if(!file_exists('data/tmp')) 115 if(!file_exists('data/tmp'))
143 { 116 {
@@ -160,3 +133,12 @@ function installation()
160 // création d'un mot de passe si password.txt est vide 133 // création d'un mot de passe si password.txt est vide
161 createPassword(); 134 createPassword();
162} 135}
136
137function createIndexPHP($path, $droitsFichiers)
138{
139 $content = "<?php\nheader('Location: ../index.php');\nexit();";
140 $file = fopen($path, 'w');
141 fputs($file, $content);
142 fclose($file);
143 chmod($path, $droitsFichiers);
144}