-
Notifications
You must be signed in to change notification settings - Fork 0
/
internet-sauvegarde-backup-restauration-web-sql.html
367 lines (352 loc) · 46.1 KB
/
internet-sauvegarde-backup-restauration-web-sql.html
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
<!DOCTYPE HTML>
<!--
Twenty by HTML5 UP
html5up.net | @ajlkn
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Comment sauvegarder et restaurer un site web et sa base SQL</title>
<link rel="alternate" type="application/rss+xml" href="https://silomia.github.io/rss.xml" title="Silomia">
<link rel="alternate" type="application/rss+xml" href="https://silomia.github.io/en-rss.xml" title="Silomia English">
<link rel="alternate" hreflang="fr" href="https://silomia.github.io/internet-sauvegarde-backup-restauration-web-sql.html">
<link rel="alternate" hreflang="en" href="https://silomia.github.io/en-internet-backup-restore-files-web-sql.html">
<link rel="canonical" href="https://silomia.gitlab.io/internet-sauvegarde-backup-restauration-web-sql.html">
<link rel="preload" href="css/styles.min.css" as="style">
<link rel="preload" href="js/script.min.js" as="script">
<link rel="preload" href="fonts/silomia-inter-light.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="fonts/silomia-inter-menu.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="fonts/silomia-inter-semibold.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="fonts/silomia-symbol.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="apple-touch-icon" sizes="192x192" href="favicon-touch-192x192.png">
<link rel="icon" type="image/png" sizes="144x144" href="favicon.png">
<link rel="manifest" href="manifest.json">
<link rel="mask-icon" href="magnolia-silomia-carre.svg" color="#ab2bab">
<meta name="apple-mobile-web-app-title" content="Silomia">
<meta name="application-name" content="Silomia">
<meta name="theme-color" content="#ffffff">
<meta property="og:title" content="Comment sauvegarder et restaurer un site web et sa base SQL">
<meta property="og:locale" content="fr">
<meta property="og:site_name" content="Silomia">
<meta property="og:type" content="article">
<meta property="og:image" content="https://silomia.github.io/images/macbook-pro-clavier.jpg">
<meta property="og:url" content="https://silomia.github.io/internet-sauvegarde-backup-restauration-web-sql.html">
<meta name="viewport" content="width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=no">
<script type="application/ld+json">
{"@context":"http://schema.org/","@type":"Article","author":{"@type":"Person","name":"Ralph Davidovits"},"publisher":{"@type":"Organization","name":"Silomia","logo":{"@type":"ImageObject","url": "https://silomia.github.io/favicon-touch-192x192.png"}},
"datePublished":"2021-06-21","dateModified":"2024-07-15",
"headline":"Comment sauvegarder et restaurer un site web et sa base SQL",
"image":["https://silomia.github.io/images/macbook-pro-clavier.jpg"],
"mainEntityOfPage":{"@type":"WebPage","@id":"https://silomia.github.io/internet.html"}
}
</script>
<style media="screen">@media screen and (prefers-color-scheme:dark){body{color:silver;background-color:#151515}}a,article,body,div,em,footer,header,html,img,li,picture,section,span,strong{margin:0;padding:0;border:0}h1,h2,h3,h4,p,ul{padding:0;border:0}article,footer,header,section{display:block}.container{margin-left:auto;margin-right:auto;width:1300px}*,.row,.row>*,::after,::before{box-sizing:border-box}.row{border-bottom:solid 1px transparent;margin:-50px 0-1px -50px}.row>*{float:left;padding:50px 0 0 50px}.row::after,.row::before{content:"";display:block;clear:both;height:0}.\34 u,.\34 u\$,.\36 u,.\38 u{width:33.3333333333%;clear:none;margin-left:0}.\36 u,.\38 u{width:50%}.row.\31 50\%>*{padding:75px 0 0 75px}.row.\31 50\%{margin:-75px 0-1px -75px}.\38 u{width:66.6666666667%}body{font-family:"Inter",-apple-system,system-ui,sans-serif;font-weight:300;letter-spacing:.02em;line-height:1.65em}a{text-decoration:none;border-bottom:dotted 1px}h1,h2,h3,h4,strong{font-weight:600}em{font-style:italic}blockquote,p,ul{margin:0 0 2em}h1,h2,h3,h4{color:inherit;line-height:1.75em;margin:.7em 0;text-transform:uppercase;letter-spacing:normal}h1{font-size:1.4em}h2,h3{font-size:1.15em}blockquote{font-style:italic;padding:1em 0 1em 2em}body,section{font-size:14pt}section.special{text-align:center}header.major{padding-bottom:2em}header.special{margin-bottom:4em;padding-top:5.5em;position:relative;text-align:center}header.special::after,header.special::before{border-bottom:solid 1.5px;border-top:solid 1.5px;content:"";height:7px;opacity:.1;position:absolute;top:1.75em;width:43%}header.special::before{left:0}header.special::after{right:0}header.special h1{margin-bottom:0;font-weight:300}header.special h1+p{margin-bottom:0;padding-top:1.5em}header.special .icon{height:7em;left:0;position:absolute;text-align:center;top:1em;width:100%}header.special .icon::before{font-size:3.5em;opacity:.35}footer>:last-child{margin-bottom:0}picture{min-height:100px}#main{padding:7em 0}body.index #main{padding-top:5em}.mh-head .mh-text{display:block}.mh-head.mh-align-right .mh-text{text-align:right}.image.featured img,picture.image.featured{display:block;margin:0 0 2em;width:100%;min-height:200px}.wrapper{margin-bottom:5em;padding:5em}.wrapper.style3,.wrapper.style4{color:inherit;border-radius:5px}.wrapper.style4{padding:4em}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.icon{text-decoration:none;position:relative}.icon::before{font-style:normal;font-weight:400;text-transform:none!important}.mm-menu_offcanvas:not(.mm-menu_opened){display:none}@media screen and (min-width:1900px){.container{width:1400px}body,section{font-size:16pt}}@media screen and (max-width:1680px){.container{width:1200px}.row>*{padding:40px 0 0 40px}.row{margin:-40px 0-1px -40px}.row.\31 50\%>*{padding:60px 0 0 60px}.row.\31 50\%{margin:-60px 0-1px -60px}#main .sidebar section{margin:3em 0 0;padding:3em 0 0}#main .sidebar section:first-child{border-top-width:0;padding-top:0;margin-top:0}body{font-size:14pt}section{font-size:12.5pt}}@media screen and (max-width:1280px){.container{width:960px}.row>*{padding:40px 0 0 40px}.row{margin:-40px 0-1px -40px}.row.\31 50\%>*{padding:60px 0 0 60px}.row.\31 50\%{margin:-60px 0-1px -60px}#main .sidebar section{margin:3em 0 0;padding:3em 0 0}#main .sidebar section:first-child{border-top-width:0;padding-top:0;margin-top:0}body{font-size:13pt;line-height:1.65em}section{font-size:12pt}h1,h2,h3,h4{line-height:1.5em}.wrapper{margin-bottom:4em;padding:4em 3em}.wrapper.style4{padding:3em}}@media screen and (max-width:980px){.container{width:95%}.row>*{padding:30px 0 0 30px}.row{margin:-30px 0-1px -30px}.row.\31 50\%>*{padding:45px 0 0 45px}.row.\31 50\%{margin:-45px 0-1px -45px}body{font-size:13pt;line-height:1.55em}section{font-size:12.5pt}header.special{padding-left:2.5em;padding-right:2.5em}.wrapper{margin-bottom:3em;padding:3em 2.5em}.wrapper.style4{padding:2.5em}}@media screen and (max-width:840px){.container{width:95%!important}.row>*{padding:30px 0 0 30px}.row{margin:-30px 0-1px -30px}.row.\31 50\%>*{padding:45px 0 0 45px}.row.\31 50\%{margin:-45px 0-1px -45px}.\31 2u\28narrower\29 {width:100%;clear:none;margin-left:0}body,html{font-size:14pt}section{font-size:13pt;margin:1em 0}h1{font-size:1.25em;letter-spacing:-.02em}h2,h3{font-size:1.05em;letter-spacing:.002em}header.special{margin-bottom:4em;padding-top:5em}header.special::after,header.special::before{width:40%}header.special h1+p{padding-top:1.25em;letter-spacing:-.01em}section:first-child{margin-top:0}.wrapper.style4{padding-bottom:3em}#main{padding:5em 0}}@media screen and (max-width:730px){.container{width:100%!important}.row>*{padding:30px 0 0 30px}.row{margin:-30px 0-1px -30px}.row.\31 50\%>*{padding:45px 0 0 45px}.row.\31 50\%{margin:-45px 0-1px -45px}body{min-width:320px;font-size:14pt;letter-spacing:.01em}section{font-size:13.5pt}h1{font-size:1.25em}h2,h3{font-size:1em}header,header p{text-align:center}header.special{margin-bottom:3em;padding-left:1.5em;padding-right:1.5em}header.special::after,header.special::before{width:38%}header.special .icon{font-size:.75em;top:1.5em}.image.featured img,picture.image.featured{min-height:100px}.wrapper{margin-bottom:2.5em;padding:2.25em 1.5em}.wrapper.style4{background-size:10em;padding:1.5em 1.5em 3em}#main{padding:3.5em 0 2.5em}}@media screen and (max-width:360px){body{font-size:14pt}section{font-size:13pt}}</style>
</head>
<body class="right-sidebar" onerror="ers()">
<div id="page-wrapper">
<!-- Header -->
<header id="header" role="banner" class="mh-head mh-align-right">
<span class="mh-btns-left"><a class="mburger mburger--squeeze" href="#my-menu"><b></b> <b></b> <b></b> <span class="mburger-label">Menu</span></a></span>
<span class="icon fa-magnolia mh-logo"></span>
<span class="mh-text slogan">Par le chemin des mots, <strong> toucher la lumière.</strong></span>
</header>
<!-- Main -->
<article id="main">
<header class="special container">
<span class="icon fa-code"></span>
<h1><strong>Méthode de sauvegarde et de restauration</strong> d'un site web et de sa base SQL</h1>
<p>Réactiver un site internet en moins d'une heure.</p>
</header>
<!-- One -->
<section class="wrapper style4 container">
<div class="row 150%">
<div class="8u 12u(narrower)">
<!-- Content -->
<div class="content">
<section>
<picture class="image featured">
<source type="image/avif" media="(max-width: 415px)" srcset="images/macbook-pro-clavier@1x.avif">
<source type="image/avif" media="(min-width: 416px)" srcset="images/macbook-pro-clavier@1x.avif 1x, images/macbook-pro-clavier.avif 2x">
<source media="(max-width: 415px)" srcset="images/macbook-pro-clavier@1x.jpg">
<source media="(min-width: 416px)" srcset="images/macbook-pro-clavier@1x.jpg 1x, images/macbook-pro-clavier.jpg 2x">
<img src="images/macbook-pro-clavier@1x.jpg" alt="Clavier lumineux Macbook Pro">
</picture>
<header>
<h2><span class="icon fa-map-marker fa-lg"></span> Sauvegarder son site web et sa base SQL (Partie 1)</h2>
</header>
<p>Comme pour votre ordinateur, la conservation d'une copie de sauvegarde de votre site web est impérative.</p>
<h3>1- Préparer la sauvegarde du site web :</h3>
<p>Ayez toujours sur votre ordinateur la copie de votre site web. Si vous avez installé un blog, forum, cms, e-commerce, conservez-en une copie opérationnelle avec les fichiers config, htaccess, les plug-ins, modules additionnels, thèmes, templates et vos modifications.</p>
<p>Si vous mettez votre logiciel web à jour, faites la même chose avec votre sauvegarde.<br>
Si votre site contient un dossier d'upload et des logs, allez les récupérer régulièrement. Pour simplifier cette dernière tâche, le script ci-dessous va faire une sauvegarde au format ZIP d'un fichier de log. Au lieu de télécharger une centaine de petits fichiers textes, tout sera regroupé en un fichier ZIP.</p>
<span class="smallfont">Code PHP :</span>
<!-- HTML generated using hilite.me --><div class="smallfont code" style="overflow:auto;width:auto;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #BC7A00"><?php</span>
<span style="color: #408080; font-style: italic">/* Assurez-vous que le dossier de destination de la sauvegarde est cree. Il peut etre soit dans le dossier www ou ailleurs. Ici nous le mettons ailleurs*/</span>
<span style="color: #408080; font-style: italic">/* Modifiez vos parametres */</span>
<span style="color: #19177C">$uploads</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"/home/loginftp/www/uploads"</span>; <span style="color: #408080; font-style: italic">/* chemin absolu du dossier uploads a sauvegarder sans le / final */</span>
<span style="color: #19177C">$repsauvegarde</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"/home/loginftp/sauvegarde/"</span>; <span style="color: #408080; font-style: italic">/* chemin absolu du repertoire de sauvegarde */</span>
<span style="color: #19177C">$zipuploads</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"mesuploads"</span>; <span style="color: #408080; font-style: italic">/* nom du fichier zip de la sauvegarde sans mettre le .zip a la fin */</span>
<span style="color: #408080; font-style: italic">/* On va mettre 2 dossiers differents dans un meme fichier zip */</span>
<span style="color: #408080; font-style: italic">/* Modifiez vos parametres */</span>
<span style="color: #19177C">$logs1</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"/home/loginftp/www/telechargement/logs"</span>; <span style="color: #408080; font-style: italic">/* chemin absolu du dossier logs des telechargements a sauvegarder sans le / final */</span>
<span style="color: #19177C">$logs2</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"/home/loginftp/www/session/logs"</span>; <span style="color: #408080; font-style: italic">/* chemin absolu du dossier logs des sessions a sauvegarder sans le / final */</span>
<span style="color: #19177C">$repsauvegarde</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"/home/loginftp/sauvegarde/"</span>; <span style="color: #408080; font-style: italic">/* chemin absolu du repertoire de sauvegarde */</span>
<span style="color: #19177C">$ziplogs</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"meslogs"</span>; <span style="color: #408080; font-style: italic">/* nom du fichier zip de la sauvegarde sans mettre le .zip a la fin */</span>
<span style="color: #408080; font-style: italic">/* C'est tout. Placez ce fichier par FTP quelque part sur votre serveur Web, dans un endroit discret. */</span>
<span style="color: #408080; font-style: italic">/* Puis ouvrez-le avec votre navigateur web et suivez les instructions. */</span>
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"<html><body>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"1. Ce script cree automatiquement une sauvegarde du dossier </span><span style="color: #BB6688; font-weight: bold">$uploads</span><span style="color: #BA2121"> </span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"Le dossier est en cours de sauvegarde.......</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">if</span> (<span style="color: #008000">system</span>(<span style="color: #BA2121">"zip -qr -5 </span><span style="color: #BB6688; font-weight: bold">$repsauvegarde$zipuploads</span><span style="color: #BA2121"> </span><span style="color: #BB6688; font-weight: bold">$uploads</span><span style="color: #BA2121">"</span>));
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"C'est fait. </span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"2. Sauvegarde des dossiers </span><span style="color: #BB6688; font-weight: bold">$logs1</span><span style="color: #BA2121"> et </span><span style="color: #BB6688; font-weight: bold">$logs2</span><span style="color: #BA2121"> </span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"Les dossiers sont en cours de sauvegarde.......</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">if</span> (<span style="color: #008000">system</span>(<span style="color: #BA2121">"zip -qr -5 </span><span style="color: #BB6688; font-weight: bold">$repsauvegarde$ziplogs</span><span style="color: #BA2121"> </span><span style="color: #BB6688; font-weight: bold">$logs1</span><span style="color: #BA2121">"</span>));
<span style="color: #008000; font-weight: bold">if</span> (<span style="color: #008000">system</span>(<span style="color: #BA2121">"zip -qr -5 </span><span style="color: #BB6688; font-weight: bold">$repsauvegarde$ziplogs</span><span style="color: #BA2121"> </span><span style="color: #BB6688; font-weight: bold">$logs2</span><span style="color: #BA2121">"</span>));
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"C'est fini. Vous pouvez recuperer la sauvegarde par FTP dans le dossier </span><span style="color: #BB6688; font-weight: bold">$repsauvegarde</span><span style="color: #BA2121"> .</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>N'oubliez pas d'effacer ces fichiers de votre serveur par FTP car ils peuvent contenir des mots de passe ou des informations personnelles.</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></body></html>"</span>;
<span style="color: #BC7A00">?></span>
</pre></div>
<p><strong>Utiliser Tar, GZIP ou BZ2 au lieu du ZIP.</strong> Il y a une limite au tar par rapport au zip: celle de combiner plusieurs dossiers différents dans une même archive. Avec tar, on ne peut compresser qu'un répertoire avec ses sous dossiers ou alors combiner plusieurs archives tar. Donc, pour mon exemple de script de sauvegarde on peut remplacer la ligne 20:</p>
<span class="smallfont">Code PHP :</span>
<!-- HTML generated using hilite.me --><div class="smallfont code" style="overflow:auto;width:auto;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #008000; font-weight: bold">if</span> (<span style="color: #008000">system</span>(<span style="color: #BA2121">"zip -qr -5 </span><span style="color: #BB6688; font-weight: bold">$repsauvegarde$zipuploads</span><span style="color: #BA2121"> </span><span style="color: #BB6688; font-weight: bold">$uploads</span><span style="color: #BA2121">"</span>));
</pre></div>
<p>par ça pour le Tar Gzip:</p>
<span class="smallfont">Code PHP :</span>
<!-- HTML generated using hilite.me --><div class="smallfont code" style="overflow:auto;width:auto;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #008000; font-weight: bold">if</span> (<span style="color: #008000">system</span>(<span style="color: #BA2121">"tar -czf </span><span style="color: #BB6688; font-weight: bold">$repsauvegarde$zipuploads</span><span style="color: #BA2121">.tar.gz </span><span style="color: #BB6688; font-weight: bold">$uploads</span><span style="color: #BA2121">"</span>));
</pre></div>
<p>ou ça pour le Tar Bzip2 :</p>
<span class="smallfont">Code PHP :</span>
<!-- HTML generated using hilite.me --><div class="smallfont code" style="overflow:auto;width:auto;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #008000; font-weight: bold">if</span> (<span style="color: #008000">system</span>(<span style="color: #BA2121">"tar -cjf </span><span style="color: #BB6688; font-weight: bold">$repsauvegarde$zipuploads</span><span style="color: #BA2121">.tar.bz2 </span><span style="color: #BB6688; font-weight: bold">$uploads</span><span style="color: #BA2121">"</span>));
</pre></div>
<p>À noter que tar bzip2 compresse mieux que tar gzip qui, lui aussi, est souvent plus efficace que le Zip.</p>
<p><strong>ATTENTION :</strong> ne cherchez pas à faire un fichier ZIP de tout votre hébergement, cela risque de ne pas marcher. Il y a 2 raisons à cela : le temps d'exécution d'un script est souvent limité de 30 à 120 secondes et la mémoire RAM allouée au traitement du script et à la manipulation des fichiers est limitée en fonction de votre offre d'hébergement (de 32 Mo à 256 Mo, ce qui est insuffisant pour une sauvegarde de votre site web).<br>
Pour connaitre ces limites, créez un fichier info.php avec le code suivant :</p>
<span class="smallfont">Code PHP :</span>
<!-- HTML generated using hilite.me --><div class="smallfont code" style="overflow:auto;width:auto;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #BC7A00"><?php</span>
<span style="color: #008000">phpinfo</span>();
<span style="color: #BC7A00">?></span>
</pre></div>
<p>Envoyez ce fichier par FTP, ouvrez-le avec votre navigateur web, et cherchez les lignes : <em>max_execution_time</em> (temps d'exécution du script), <em>memory_limit</em> et <em>post_max_size</em> pour connaitre la taille maximum du fichier à traiter.</p>
<h3>2- Préparer la sauvegarde de la base MySQL :</h3>
<p>La sauvegarde de la base MySQL s'appelle un “dump”. On peut la faire depuis votre interface phpMyadmin, ou depuis un script php.</p>
<h4>a) Sauvegarde par Script PHP :</h4>
<p>L'avantage de la sauvegarde par script PHP est sa rapidité et la maitrise de quelques options qu'on ne peut contrôler avec phpMyadmin, notamment le problème d'encodage des caractères accentués (appelé jeu de caractères). C'est pourquoi je préfère cette solution.</p>
<span class="smallfont">Code PHP :</span>
<!-- HTML generated using hilite.me --><div class="smallfont code" style="overflow:auto;width:auto;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #BC7A00"><?php</span>
<span style="color: #408080; font-style: italic">/* Modifiez vos parametres MySQL */</span>
<span style="color: #19177C">$db_server</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"ServeurMySQL"</span>;
<span style="color: #19177C">$db_name</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"NomDeLaBaseSQL"</span>;
<span style="color: #19177C">$db_username</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"IdentifiantSQL"</span>;
<span style="color: #19177C">$db_password</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"MotDePasseSQL"</span>;
<span style="color: #19177C">$db_charset</span> <span style="color: #666666">=</span> <span style="color: #BA2121">"utf8"</span>; <span style="color: #408080; font-style: italic">/* mettre utf8 ou latin1 */</span>
<span style="color: #408080; font-style: italic">/* C'est tout. Placez ce fichier par FTP quelque part sur votre serveur Web, dans un endroit discret. */</span>
<span style="color: #408080; font-style: italic">/* Puis ouvrez-le avec votre navigateur web et suivez les instructions. */</span>
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"<html><body>Ce script cree une sauvegarde de la base de donnees avec l'encodage du jeu de caracteres </span><span style="color: #BB6688; font-weight: bold">$db_charset</span><span style="color: #BA2121"> . </span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>Le fichier de sauvegarde est au meme endroit que ce script. </span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"Votre base est en cours de sauvegarde.......</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">if</span> (<span style="color: #008000">system</span>(<span style="color: #BA2121">"mysqldump --host=</span><span style="color: #BB6688; font-weight: bold">$db_server</span><span style="color: #BA2121"> --user=</span><span style="color: #BB6688; font-weight: bold">$db_username</span><span style="color: #BA2121"> --password=</span><span style="color: #BB6688; font-weight: bold">$db_password</span><span style="color: #BA2121"> -C -Q -e --default-character-set=</span><span style="color: #BB6688; font-weight: bold">$db_charset</span><span style="color: #BA2121"> </span><span style="color: #BB6688; font-weight: bold">$db_name</span><span style="color: #BA2121"> | gzip -c > </span><span style="color: #BB6688; font-weight: bold">$db_name</span><span style="color: #BA2121">-</span><span style="color: #BB6688; font-weight: bold">$db_charset</span><span style="color: #BA2121">.sql.gz"</span>));
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>"</span>;
<span style="color: #008000; font-weight: bold">echo</span> <span style="color: #BA2121">"C'est fini. Vous pouvez recuperer le fichier de sauvegarde. Il s'appelle: <a href=</span><span style="color: #BB6622; font-weight: bold">\"</span><span style="color: #BB6688; font-weight: bold">$db_name</span><span style="color: #BA2121">-</span><span style="color: #BB6688; font-weight: bold">$db_charset</span><span style="color: #BA2121">.sql.gz</span><span style="color: #BB6622; font-weight: bold">\"</span><span style="color: #BA2121">></span><span style="color: #BB6688; font-weight: bold">$db_name</span><span style="color: #BA2121">-</span><span style="color: #BB6688; font-weight: bold">$db_charset</span><span style="color: #BA2121">.sql.gz</a> (faites un clic-droit, et enregistrez sous... , ou enregistrez la cible du lien sous...) </span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br>N'oubliez pas d'effacer ce fichier de votre serveur par FTP car il contient des mots de passe.</span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></span><span style="color: #BB6622; font-weight: bold">\n</span><span style="color: #BA2121"><br></body></html>"</span>;
<span style="color: #BC7A00">?></span>
</pre></div>
<h4>b) Sauvegarde par phpMyadmin :</h4>
<p>Pour faire une sauvegarde de votre base MySQL actuelle connectez-vous à votre interface phpMyadmin. Entrez le nom de la base SQL et son mot de passe, puis en haut de la colonne de gauche, cliquez sur le nom de la base. En haut de la page centrale, cliquez sur l'onglet “Exporter”. La page Exporter affiche une version simplifiée qui devrait suffire la plupart du temps. Choisissez l'export au format SQL et cliquez sur le bouton Exécuter. Pour sélectionner certaines tables, choisissez la méthode personnalisée et cochez les cases des tables que vous voulez exporter. Vous enregistrez la sortie vers un fichier, avec un jeu de caractère qui devrait être UTF-8 par défaut, et si la base de données est grosse, vous pouvez la compresser au format GZIP. Les autres cases à cocher par défaut devraient être acceptables, sauf si vous savez ce que vous faites, et enfin cliquez sur le bouton Exécuter. Et n'oubliez pas de vous déconnecter une fois terminé en cliquant sur l'icône Déconnecter en haut à gauche.</p>
<p>Après la sauvegarde, la restauration…</p>
<hr>
<header>
<h2><span class="icon fa-map-marker fa-lg"></span> Restaurer son site web et sa base SQL (Partie 2)</h2>
</header>
<h3>3- Restaurer le site web :</h3>
<p>Cela est facile. Tout d'abord, si vous avez modifié les droits des fichiers en 404 ou 444 et dossier en 505 ou 555 comme <a href="internet-se-proteger-des-pirates-et-hackers.html#chmod">expliqué dans un article</a>, vous ne pourrez les supprimer ou les remplacer. Refaites les commandes en donnant aux fichiers les droits 604 ou 644 aux fichiers et 705 ou 755 aux dossiers. Puis effacez complètement votre site web. Vous ne savez pas quelles traces et fichiers cachés a laissé le pirate, il faut rebâtir sur une base saine. Ensuite, par FTP envoyez votre sauvegarde vers votre site. Puis remodifiez les droits des fichiers et dossiers comme discuté précédemment.</p>
<h3>4- Restaurer la base SQL :</h3>
<p>Si votre sauvegarde est à jour, vous avez l'esprit tranquille. Si votre site est très actif et qu'il s'est passé trop de temps entre votre dernière sauvegarde et le piratage, faites une sauvegarde de la base vieille d'une semaine comme expliquée ci-dessus. Cependant, vous n'aurez pas la certitude que cette base est saine.</p>
<h4>a) Restauration par phpMyadmin :</h4>
<p>Contrairement à la sauvegarde, la restauration par phpMyadmin a une limite : la taille maximum autorisée pour uploader un fichier par le Web. Cette taille varie en fonction de votre offre d'hébergement de 16 à 64 Mo le plus souvent. Pour connaitre cette limite, créez un fichier info.php avec le code suivant :</p>
<span class="smallfont">Code PHP :</span>
<!-- HTML generated using hilite.me --><div class="smallfont code" style="overflow:auto;width:auto;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #BC7A00"><?php</span>
<span style="color: #008000">phpinfo</span>();
<span style="color: #BC7A00">?></span>
</pre></div>
<p>Envoyez ce fichier par FTP, ouvrez-le avec votre navigateur web, et cherchez la ligne : <em>upload_max_filesize</em> pour connaitre la taille maximum. Si votre sauvegarde MySQL est donc inférieure à cette limite, vous pouvez le faire.</p>
<p>Un conseil : si votre “dump” ou sauvegarde a été faite avec phpMyadmin, vous pouvez faire la restauration de la même manière, sinon, allez à la méthode par script PHP expliquée au point suivant.</p>
<p><em>Effacement de la base SQL :</em><br>
Connectez-vous à votre interface phpMyadmin, entrez le nom de la base SQL et son mot de passe, puis en haut de la colonne de gauche, cliquez sur le nom de la base. Puis dans la fenêtre principale, en bas de la page, sous la colonne des cases à cocher, cliquez sur “Tout cocher” et dans le menu qui suit, choisissez “Supprimer la table”. Confirmer la suppression des “Tables” en cliquant sur “Oui”.</p>
<p><em>Restauration de la base :</em><br>
On va importer la nouvelle base de données. Cliquez sur l'onglet “Importer”. Cliquez sur “Parcourir” pour sélectionner sur votre ordinateur la sauvegarde. <strong>ATTENTION :</strong> si la sauvegarde vient d'être faite avec phpMyadmin, c'est-à-dire en ayant suivi la procédure décrite ci-dessus, sélectionnez le jeu de caractères “utf8” (il y a de fortes chances que ce jeu de caractères soit le bon, sinon, prenez “latin1”). Si la sauvegarde a été réalisée autrement, choisissez le jeu de caractères correspondant. Sinon, les caractères accentués vont mal s'afficher sur le site web. Cliquez sur Exécuter. Et n'oubliez pas de vous déconnecter une fois terminé en cliquant sur l'icône Déconnecter.</p>
<h4>b) Restauration par script PHP :</h4>
<p>Si vous avez dépassé la limite parce que votre base SQL est trop grosse, un excellent script peut vous aider, il s'agit de <a href="http://www.ozerov.de/bigdump.php">BigDump</a> dont vous pouvez télécharger la dernière <a href="depot/bigdump.zip">version 0.36b ici</a>. L'interface est en anglais. Il faut simplement entrer les paramètres de sa base SQL et choisir le bon jeu de caractères “utf8” ou “latin1”. Si vous avez utilisé le script de sauvegarde ci-dessus, vous savez quel jeu de caractères vous avez utilisé, alors qu'on est moins sûr avec phpMyadmin.</p>
<p><em>Effacement de la base SQL :</em><br>
Connectez-vous à votre interface phpMyadmin, entrez le nom de la base SQL et son mot de passe, puis en haut de la colonne de gauche, cliquez sur le nom de la base. Puis dans la fenêtre principale, en bas de la page, sous la colonne des cases à cocher, cliquez sur “Tout cocher” et dans le menu qui suit, choisissez “Supprimer la table”. Confirmer la suppression des “Tables” en cliquant sur “Oui”. Et n'oubliez pas de vous déconnecter une fois terminé en cliquant sur l'icône Déconnecter.</p>
<p><em>Restauration de la base :</em><br>
Par FTP, envoyez bigdump.php et votre sauvegarde SQL dans un même dossier. Avec votre navigateur web, ouvrez bigdump.php, il devrait lister votre base. Puis cliquez sur Start Import. Normalement, tout doit bien se passer et une fenêtre devrait vous dire que la base a été restaurée. Sinon, il vous faudra faire une sauvegarde table par table de votre base SQL pour réduire la taille des fichiers. Faites-le simplement avec phpMyadmin comme expliqué ci-dessus. Si cela n'est pas suffisant, consultez les forums, il existe de nombreuses astuces. Puis par FTP, effacez bigdump.php et la sauvegarde SQL. Ne conservez jamais bigdump, un pirate pourrait s'en servir très facilement pour contrôler votre site web.<br>
<em>Un conseil :</em> vérifiez comment s'affichent les caractères accentués sur votre site web après restauration. À cause de certaines incohérences entre le latin1 et l'utf8, on peut avoir de mauvaises surprises. Par exemple : j'ai un blog où tout est en utf-8 (texte, charset html, interclassement SQL en utf-8, etc.), tout est cohérent depuis sa création. Si je fais un dump (sauvegarde) de la base en utf8 avec mon script, puis une restauration avec bigdump.php en utf8, le site web n'affiche pas bien les caractères accentués. J'ai dû faire un dump en latin1 puis restaurer avec bigdump.php en utf8 pour retrouver une situation normale. Pensez-y.</p>
<h3>5- Récapitulatif. Vous avez sur votre ordinateur :</h3>
<p>a) votre site web complet (fichiers HTML, images, et autres fichiers),<br>
b) tous les fichiers à jour de votre blog, forum, cms, e-commerce avec les fichiers config, htaccess, les plugins, modules, thèmes, templates et vos modifications,<br>
c) les dossiers uploads, logs, etc. que vous mettez régulièrement à jour,<br>
d) une sauvegarde récente de votre base MySQL.</p>
<h3>6- Si vous faites la restauration après un piratage</h3>
<p>Modifiez vos mots de passe FTP et MySQL. Puis, n'oubliez pas de modifier les fichiers config.inc.php ou équivalents qui ont besoin de votre nouveau mot de passe SQL.</p>
</section>
</div>
</div>
<div class="4u 12u(narrower)">
<!-- Sidebar -->
<div class="sidebar" role="complementary">
<section>
<header>
<h2><span class="icon fa-talk fa-lg"></span> Commentaire</h2>
</header>
<p>Ces bouts de codes vont vous aider à sauver votre site internet en cas d'effacement des données, de corruption, de piratage, et quand la seule solution est de tout réinstaller. Ne croyez pas que cela n'arrive jamais. C'est une question de temps et de statistique, cela arrivera. Alors, ayez un plan de secours comme celui-ci.</p>
</section>
<section>
<header>
<h2><span class="icon fa-users fa-lg"></span> Partager</h2>
</header>
<ul class="icons center">
<li><a href="#dmodale" id="omodale" class="icon circle fa-partage-alt"><span class="label">Lien</span></a></li>
<li><a href="mailto:?subject=Regarde%20cet%20article%20du%20site%20web%20Silomia&body=Je%20viens%20de%20lire%20cet%20article%20provenant%20du%20site%20web%20Silomia%20et%20je%20pense%20que%20tu%20le%20trouveras%20int%C3%A9ressant.%20%0D%0AVa%20%C3%A0%20cette%20adresse%20%3A%20https%3A%2F%2Fsilomia.github.io%2Finternet-sauvegarde-backup-restauration-web-sql.html" class="icon circle fa-envelope"><span class="label">E-mail</span></a></li>
</ul>
<ul class="icons center">
<li><a href="en-internet-backup-restore-files-web-sql.html" class="icon circle fa-language"><span class="label">Lien</span></a> <br><a class="smallfont" href="en-internet-backup-restore-files-web-sql.html">English version</a></li>
</ul>
<dialog id="dmodale">
<header class="tmodale"><p>Copiez l'adresse pour la partager</p></header>
<p class="smallfont"><a id="lmodale" href="https://silomia.github.io/internet-sauvegarde-backup-restauration-web-sql.html">https://silomia.github.io/internet-sauvegarde-backup-restauration-web-sql.html</a></p>
<footer class="tmodale smallfont"><button id="cmodale" class="button">Fermer</button> <button id="copier" data-copie=">> Lien copié" class="button special">Copier</button></footer>
</dialog>
</section>
</div>
</div>
</div>
</section>
<!-- Two -->
<section class="wrapper style1 container special">
<div class="row">
<div class="4u 12u(narrower)">
<section>
<span class="icon featured fa-child"></span>
<header>
<h3>Tu seras un Homme…</h3>
</header>
<p>Re-découvrez le célèbre poème de Rudyard Kipling “Si… tu seras un homme mon fils” qui a inspiré tant de générations. Il célèbre le courage de surmonter les épreuves.</p>
<footer>
<ul class="buttons">
<li><a href="tu-seras-un-homme-mon-fils.html" class="button small">En savoir plus</a></li>
</ul>
</footer>
</section>
</div>
<div class="4u 12u(narrower)">
<section>
<span class="icon featured fa-trophy"></span>
<header>
<h3>J'ai décidé de réussir</h3>
</header>
<p>J'ai réuni 10 conseils éprouvés pour trouver la volonté d'accomplir avec succès ses ambitions et franchir certains obstacles dans sa vie personnelle et professionnelle.</p>
<footer>
<ul class="buttons">
<li><a href="decider-de-reussir-sa-vie-changer-evoluer.html" class="button small">En savoir plus</a></li>
</ul>
</footer>
</section>
</div>
<div class="4u 12u(narrower)">
<section>
<span class="icon featured fa-food"></span>
<header>
<h3>Gourmandises</h3>
</header>
<p>Des recettes exquises de mignardises (madeleines, financiers, sablés, cakes, muffins) et autres gourmandises (croissants, brioche, gâteaux traditionnels…).</p>
<footer>
<ul class="buttons">
<li><a href="gourmandise.html" class="button small">En savoir plus</a></li>
</ul>
</footer>
</section>
</div>
</div>
</section>
</article>
<!-- Menu -->
<nav id="my-menu" role="navigation">
<!--z><div id="menu" class="wrapper style3 container 75%"><h2>MENU</h2></z-->
<ul>
<li><a href="index.html"><span class="icon fa-home fa-fw"></span> Accueil</a></li>
<li><a href="tu-seras-un-homme-mon-fils.html"><span class="icon fa-child fa-fw"></span> Tu seras un homme mon fils</a></li>
<li><a href="decider-de-reussir-sa-vie-changer-evoluer.html"><span class="icon fa-trophy fa-fw"></span> J'ai décidé de réussir</a></li>
<li><a href="le-monde-et-l-humanite-doivent-changer.html"><span class="icon fa-baton-lumiere fa-fw"></span> Se libérer du mal</a></li>
<li><a href="meditation-relaxation-seance-video.html"><span class="icon fa-cloud fa-fw"></span> Relaxation et méditation</a></li>
<li><a href="contre-la-manipulation-des-masses.html"><span class="icon fa-flag fa-fw"></span> Manipuler la foule</a></li>
<li class="submenu">
<span><span class="icon fa-food fa-fw"></span> Gourmandises</span>
<ul>
<li><a href="mignardise-madeleine.html"><span class="icon fa-food fa-fw"></span> Madeleines</a></li>
<li><a href="mignardise-financier.html"><span class="icon fa-food fa-fw"></span> Financiers aux amandes</a></li>
<li><a href="mignardise-petits-beurre.html"><span class="icon fa-food fa-fw"></span> Petits biscuits au beurre</a></li>
<li><a href="mignardise-mini-cakes.html"><span class="icon fa-food fa-fw"></span> Mini cakes</a></li>
<li><a href="mignardise-muffins.html"><span class="icon fa-food fa-fw"></span> Muffins</a></li>
<li><a href="mignardise-briquettes.html"><span class="icon fa-food fa-fw"></span> Briquettes</a></li>
<li><a href="gourmandise-croissants-pains-au-chocolat.html"><span class="icon fa-food fa-fw"></span> Croissants</a></li>
<li><a href="gourmandise-brioche-au-beurre.html"><span class="icon fa-food fa-fw"></span> Brioche</a></li>
<li><a href="gateau-cake-tere-couque.html"><span class="icon fa-food fa-fw"></span> Tère couque / Cake tendre</a></li>
<li><a href="gourmandise-crepes-ultimes.html"><span class="icon fa-food fa-fw"></span> Crêpes</a></li>
<li><a href="gourmandise-caramel-beurre-sale.html"><span class="icon fa-food fa-fw"></span> Caramel Beurre Salé</a></li>
<li><a href="gourmandise-pate-a-tartiner-chocolat-noisette.html"><span class="icon fa-food fa-fw"></span> Pâte Chocolat Noisette</a></li>
<li><a href="gateau-tarte-pommes-amankay.html"><span class="icon fa-food fa-fw"></span> Tarte aux pommes Amankay</a></li>
<li><a href="gateau-streusel-a-la-creme.html"><span class="icon fa-food fa-fw"></span> Streusel à la crème</a></li>
<li><a href="gateau-strudel-viennois.html"><span class="icon fa-food fa-fw"></span> Strudel Viennois</a></li>
<li><a href="gateau-kouglof-gugelhupf.html"><span class="icon fa-food fa-fw"></span> Kouglof</a></li>
<li><a href="gateau-stollen.html"><span class="icon fa-food fa-fw"></span> Stollen</a></li>
<li><a href="gateau-roule.html"><span class="icon fa-food fa-fw"></span> Gâteau Roulé</a></li>
<li><a href="gateau-tarte-fraises.html"><span class="icon fa-food fa-fw"></span> Tarte aux Fraises</a></li>
<li><a href="gateau-rhubarbe.html"><span class="icon fa-food fa-fw"></span> Tarte Rhubarbe</a></li>
<li><a href="gateau-clafoutis.html"><span class="icon fa-food fa-fw"></span> Clafoutis</a></li>
<li><a href="gateau-tarte-universelle.html"><span class="icon fa-food fa-fw"></span> Tarte universelle</a></li>
<li><a href="gateau-mirabelle-quetsche.html"><span class="icon fa-food fa-fw"></span> Gâteau Mirabelle</a></li>
<li><a href="gateau-cake-pavot.html"><span class="icon fa-food fa-fw"></span> Cake au pavot</a></li>
<li><a href="gourmandise-riz-semoule-au-lait.html"><span class="icon fa-food fa-fw"></span> Riz au lait</a></li>
</ul>
</li>
<li><a href="business-model-valider-projet-entreprise.html"><span class="icon fa-line-chart fa-fw"></span> Canevas de business modèle</a></li>
<li><a href="marketing-techniques-secretes.html"><span class="icon fa-shopping-cart fa-fw"></span> 10 secrets marketing</a></li>
<li><a href="recueil-de-blagues.html"><span class="icon fa-paw fa-fw"></span> Blog de Blagues</a></li>
<li class="submenu">
<span><span class="icon fa-code fa-fw"></span> Outils pour WebDev</span>
<ul>
<li><a href="internet-se-proteger-des-pirates-et-hackers.html"><span class="icon fa-code fa-fw"></span> Se protéger des pirates</a></li>
<li><a href="internet-sauvegarde-backup-restauration-web-sql.html"><span class="icon fa-code fa-fw"></span> Sauvegarder un site web</a></li>
<li><a href="internet-referencement-site-web.html"><span class="icon fa-code fa-fw"></span> Référencer un site web</a></li>
<li><a href="internet-debug-php-mysql.html"><span class="icon fa-code fa-fw"></span> Débogage de scripts</a></li>
</ul>
</li>
<li><a href="conseils-pratiques-photographie.html"><span class="icon fa-diaph fa-fw"></span> Mémento du photographe</a></li>
<li><a href="page-de-telechargement.html"><span class="icon fa-download fa-fw"></span> Téléchargement libre</a></li>
<li><a href="courrier.html"><span class="icon fa-envelope fa-fw"></span> Contact</a></li>
<li><a href="#0" class="commutateur mode-clair" data-stylesheet="css/styles.clair.min.css"><span class="icon fa-sun fa-fw modestyle clair"></span> <span class="paramBouton">Clair</span></a><a href="#0" class="commutateur mode-sombre" data-stylesheet="css/styles.sombre.min.css"><span class="icon fa-moon fa-fw modestyle sombre"></span> <span class="paramBouton">Sombre</span></a> <a href="#0" id="modecaractopti"><span class="icon fa-font fa-fw modestyle sombre"></span></a></li>
</ul>
<!--z></div></z-->
</nav>
<!-- Footer -->
<footer id="footer" role="contentinfo">
<ul class="copyright">
<li><a href="index.html"><span class="icon fa-home fa-fw"></span> Accueil</a></li>
<li><a href="courrier.html"><span class="icon fa-envelope fa-fw"></span> Contact</a></li>
<li><a href="en-internet-backup-restore-files-web-sql.html"><span class="icon fa-language fa-fw"></span> In English</a></li>
<li><a href="menu.html" accesskey="3"><span class="icon fa-align-bars fa-fw"></span> Plan du site <span class="smallfont">[TOUCHE]+3</span></a></li>
</ul>
<ul class="copyright">
<li>© 2007 à 2024 </li><li><a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></li><li><span class="icon fa-code fa-fw"></span> <a href="README.html">Crédits</a></li>
</ul>
</footer>
<!--z><style>li.submenu{margin-top:1em}li.submenu ul{padding-left:.68em}#header{position:absolute}</style></z-->
</div><!-- page-wrapper -->
<!-- Scripts -->
<link rel="stylesheet" href="css/styles.min.css">
<link rel="stylesheet" id="feuillestyle-active"><link rel="stylesheet" id="feuilleStyleCaract">
<script src="js/script.min.js" async></script>
<script async>function ers(){var e=document.getElementById("page-wrapper").innerHTML.replace(/(<!--z>|<\/z-->)/g,"");document.getElementById("page-wrapper").innerHTML=e}try{eval("(class Foo{})")}catch(a){ers()}</script>
</body>
</html>