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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
<?php
// controller/installation.php
// premier démarrage du site
function installation()
{
// présence du .htaccess
if(!file_exists(".htaccess"))
{
$contenu = "ErrorDocument 404 /erreur404.php";
echo('<p style="color: orange; text-align:center;" >Le .htaccess est absent.<br/>
Si vous ne savez pas de quoi il s\'agit, contactez le responsable du site.<br/>
Sinon, veuillez créer un fichier nommé .htaccess à la racine du site et y copier-coller la ligne suivante:<br/><br/>
<i>' . $contenu . '</i></p>');
// Pour le créer
// laisser commenté, la création risque d'échouer
// $fichier = fopen('.htaccess', 'w');
// fputs($fichier, $contenu);
// fclose($fichier);
// chmod('.htaccess', 0666); // mettre 0644 en production
}
// dans le cas de l'utilisation d'une base de données, le fichiers zip devrait contenir un "dump" (un fichier .sql),
// à voir si php est capable d'obtenir ou redonner ce fichier à la BDD
// création des dossiers
// attention: ne fonctionne pas sans une manipulation préalable
// - créer le dossier data à la racine du site
// - lui donner les droits du dossier data pour 777
// valeur en octal
$droitsDossiers = 0777; // mettre 0755 en production
$droitsFichiers = 0666;
if(!file_exists('data') && !mkdir('data'))
{
$erreur = 'data';
$title = 'Dossier data absent';
require('view/backup.php');
exit();
}
if(!touch('data')) // test autorisation en écriture
{
$erreur = 'data';
$title = 'Écriture non autorisée dans le dossier data';
require('view/backup.php');
exit();
}
if(!file_exists('data/index.php'))
{
createIndexPHP('data/index.php', $droitsFichiers);
}
$listePages = array('menu', 'melaine', 'musique', 'discographie', 'presse', 'jaime', 'peinture', 'archives', 'legal');
foreach ($listePages as $page)
{
if(!file_exists('data/' . $page))
{
mkdir('data/' . $page);
chmod('data/' . $page, $droitsDossiers);
}
if(!file_exists('data/' . $page . '/index.php'))
{
createIndexPHP('data/' . $page . '/index.php', $droitsFichiers);
}
if(!file_exists('data/' . $page . '/html'))
{
mkdir('data/' . $page . '/html');
chmod('data/' . $page . '/html', $droitsDossiers);
}
if(!file_exists('data/' . $page . '/html/index.php'))
{
createIndexPHP('data/' . $page . '/html/index.php', $droitsFichiers);
}
if(!file_exists('data/' . $page . '/html-mini-images'))
{
mkdir('data/' . $page . '/html-mini-images');
chmod('data/' . $page . '/html-mini-images', $droitsDossiers);
}
if(!file_exists('data/' . $page . '/html-mini-images/index.php'))
{
createIndexPHP('data/' . $page . '/html-mini-images/index.php', $droitsFichiers);
}
if(!file_exists('data/' . $page . '/images'))
{
mkdir('data/' . $page . '/images');
chmod('data/' . $page . '/images', $droitsDossiers);
}
if(!file_exists('data/' . $page . '/images/index.php'))
{
createIndexPHP('data/' . $page . '/images/index.php', $droitsFichiers);
}
if(!file_exists('data/' . $page . '/images-mini'))
{
mkdir('data/' . $page . '/images-mini');
chmod('data/' . $page . '/images-mini', $droitsDossiers);
}
if(!file_exists('data/' . $page . '/images-mini/index.html'))
{
createIndexPHP('data/' . $page . '/images-mini/index.php', $droitsFichiers);
}
// if(!file_exists('data/' . $page . '/multimedia'))
// {
// mkdir('data/' . $page . '/multimedia');
// chmod('data/' . $page . '/multimedia', 0777);
// }
}
// dossiers supplémentaires dans discographie
if(!file_exists('data/discographie/json'))
{
mkdir('data/discographie/json');
chmod('data/discographie/json', $droitsDossiers);
}
if(!file_exists('data/discographie/json/index.php'))
{
createIndexPHP('data/discographie/json/index.php', $droitsFichiers);
}
// fichiers temporaires pour upload des grosses archives
if(!file_exists('data/tmp'))
{
mkdir('data/tmp');
chmod('data/tmp', $droitsDossiers);
}
if(!file_exists('data/tmp/index.php'))
{
createIndexPHP('data/tmp/index.php', $droitsFichiers);
}
// le modèle donnera les droits 0666 (octal) aux nouveaux fichiers à l'intérieur des dossiers
// créer le melainePHP.zip
if(!file_exists("data/melainePHP.zip"))
{
require('controller/backup.php');
createZipMelainePHP();
}
// création d'un mot de passe si password.txt est vide
createPassword();
}
function createIndexPHP($path, $droitsFichiers)
{
$content = "<?php\nheader('Location: ../index.php');\nexit();";
$file = fopen($path, 'w');
fputs($file, $content);
fclose($file);
chmod($path, $droitsFichiers);
}
|