|
1 <?php |
|
2 /** |
|
3 * Retrieves and creates the wp-config.php file. |
|
4 * |
|
5 * The permissions for the base directory must allow for writing files in order |
|
6 * for the wp-config.php to be created using this page. |
|
7 * |
|
8 * @package WordPress |
|
9 * @subpackage Administration |
|
10 */ |
|
11 |
|
12 /** |
|
13 * We are installing. |
|
14 * |
|
15 * @package WordPress |
|
16 */ |
|
17 define('WP_INSTALLING', true); |
|
18 |
|
19 /** |
|
20 * Disable error reporting |
|
21 * |
|
22 * Set this to error_reporting( E_ALL ) or error_reporting( E_ALL | E_STRICT ) for debugging |
|
23 */ |
|
24 error_reporting(0); |
|
25 |
|
26 /**#@+ |
|
27 * These three defines are required to allow us to use require_wp_db() to load |
|
28 * the database class while being wp-content/db.php aware. |
|
29 * @ignore |
|
30 */ |
|
31 define('ABSPATH', dirname(dirname(__FILE__)).'/'); |
|
32 define('WPINC', 'wp-includes'); |
|
33 define('WP_CONTENT_DIR', ABSPATH . 'wp-content'); |
|
34 /**#@-*/ |
|
35 |
|
36 require_once(ABSPATH . WPINC . '/compat.php'); |
|
37 require_once(ABSPATH . WPINC . '/functions.php'); |
|
38 require_once(ABSPATH . WPINC . '/classes.php'); |
|
39 |
|
40 if (!file_exists(ABSPATH . 'wp-config-sample.php')) |
|
41 wp_die('Je suis désolé, mais il me faut partir d\'un fichier <code>wp-config-sample.php</code>. Veuillez remettre en ligne ce fichier depuis votre archive WordPress.'); |
|
42 |
|
43 $configFile = file(ABSPATH . 'wp-config-sample.php'); |
|
44 |
|
45 // Check if wp-config.php has been created |
|
46 if (file_exists(ABSPATH . 'wp-config.php')) |
|
47 wp_die("<p>Le fichier 'wp-config.php' existe déjà. Si vous devez mettre à zéro les éléments de configuration de ce fichier, veuillez l'effacer avant de continuer. Vous pouvez <a href='install.php'>lancer l'installateur</a> maintenant.</p>"); |
|
48 |
|
49 // Check if wp-config.php exists above the root directory but is not part of another install |
|
50 if (file_exists(ABSPATH . '../wp-config.php') && ! file_exists(ABSPATH . '../wp-settings.php')) |
|
51 wp_die("<p>Le fichier 'wp-config.php' existe déjà dans un répertoire supérieur à votre installation de WordPress. Si vous avez besoin de réinitialiser un élément de configuration de ce fichier, merci de l'effacer d'abord. Vous maintenant procéder <a href='install.php'>l'installation</a>.</p>"); |
|
52 |
|
53 if ( version_compare( '4.3', phpversion(), '>' ) ) |
|
54 wp_die( sprintf( /*WP_I18N_OLD_PHP*/'Votre serveur utilise la version %s de PHP mais WordPress nécéssite au moins la version 4.3.'/*/WP_I18N_OLD_PHP*/, phpversion() ) ); |
|
55 |
|
56 if ( !extension_loaded('mysql') && !file_exists(ABSPATH . 'wp-content/db.php') ) |
|
57 wp_die( /*WP_I18N_OLD_MYSQL*/'Votre installation PHP ne dispose pas de MySQL. Extension requise pour WordPress.'/*/WP_I18N_OLD_MYSQL*/ ); |
|
58 |
|
59 if (isset($_GET['step'])) |
|
60 $step = $_GET['step']; |
|
61 else |
|
62 $step = 0; |
|
63 |
|
64 /** |
|
65 * Display setup wp-config.php file header. |
|
66 * |
|
67 * @ignore |
|
68 * @since 2.3.0 |
|
69 * @package WordPress |
|
70 * @subpackage Installer_WP_Config |
|
71 */ |
|
72 function display_header() { |
|
73 header( 'Content-Type: text/html; charset=utf-8' ); |
|
74 ?> |
|
75 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
76 <html xmlns="http://www.w3.org/1999/xhtml"> |
|
77 <head> |
|
78 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
|
79 <title>WordPress › Création du fichier du configuration</title> |
|
80 <link rel="stylesheet" href="css/install.css" type="text/css" /> |
|
81 |
|
82 </head> |
|
83 <body> |
|
84 <h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png" /></h1> |
|
85 <?php |
|
86 }//end function display_header(); |
|
87 |
|
88 switch($step) { |
|
89 case 0: |
|
90 display_header(); |
|
91 ?> |
|
92 |
|
93 <p>Bienvenue dans WordPress. Avant de nous lancer, nous avons besoin de quelques informations à propos de la base de données. Il vous faudra connaître les points suivants pour aller plus loin.</p> |
|
94 <ol> |
|
95 <li>Le nom de la base de données</li> |
|
96 <li>Votre identifiant de base de données</li> |
|
97 <li>Votre mot de passe de base de données</li> |
|
98 <li>L'hôte de la base de données</li> |
|
99 <li>Le préfixe de table (si vous voulez installer plus d'un blog WordPress sur la même base de données)</li> |
|
100 </ol> |
|
101 <p><strong>Si pour une raison quelconque la création automatique du fichier ne fonctionnait pas, ne paniquez pas : elle ne fait que remplir les informations de la base de données dans un fichier de configuration. Vous pouvez donc simplement ouvrir <code>wp-config-sample.php</code> dans un éditeur de texte, y entrer vos informations, et enregistrer le fichier sous le nouveau nom <code>wp-config.php</code>.</strong></p> |
|
102 <p>Normalement, ces informations vous ont été fournies par votre hébergeur. Si vous ne les avez pas, il vous faudra le contacter pour continuer. Si vous êtes prêt…</p> |
|
103 |
|
104 <p class="step"><a href="setup-config.php?step=1" class="button">Allons-y !</a></p> |
|
105 <?php |
|
106 break; |
|
107 |
|
108 case 1: |
|
109 display_header(); |
|
110 ?> |
|
111 <form method="post" action="setup-config.php?step=2"> |
|
112 <p>Entrez ci-dessous les détails de connexion à votre base de données. Si vous ne les connaissez pas avec certitude, contactez votre hébergeur. </p> |
|
113 <table class="form-table"> |
|
114 <tr> |
|
115 <th scope="row"><label for="dbname">Nom de la base de données</label></th> |
|
116 <td><input name="dbname" id="dbname" type="text" size="25" value="wordpress" /></td> |
|
117 <td>Le nom de la base dans laquelle vous voulez installer WP. </td> |
|
118 </tr> |
|
119 <tr> |
|
120 <th scope="row"><label for="uname">Identifiant</label></th> |
|
121 <td><input name="uname" id="uname" type="text" size="25" value="username" /></td> |
|
122 <td>Votre identifiant MySQL.</td> |
|
123 </tr> |
|
124 <tr> |
|
125 <th scope="row"><label for="pwd">Mot de passe</label></th> |
|
126 <td><input name="pwd" id="pwd" type="text" size="25" value="password" /></td> |
|
127 <td>...et votre mot de passe MySQL.</td> |
|
128 </tr> |
|
129 <tr> |
|
130 <th scope="row"><label for="dbhost">Hôte de la base de données</label></th> |
|
131 <td><input name="dbhost" id="dbhost" type="text" size="25" value="localhost" /></td> |
|
132 <td>Dans 99% des cas, vous n'aurez pas à modifier cette valeur.</td> |
|
133 </tr> |
|
134 <tr> |
|
135 <th scope="row"><label for="prefix">Préfixe de table</label></th> |
|
136 <td><input name="prefix" type="text" id="prefix" value="wp_" size="25" /></td> |
|
137 <td>Si vous voulez installer plusieurs blogs WordPress dans une même base de données, modifiez ce champ.</td> |
|
138 </tr> |
|
139 </table> |
|
140 <p class="step"><input name="submit" type="submit" value="Valider" class="button" /></p> |
|
141 </form> |
|
142 <?php |
|
143 break; |
|
144 |
|
145 case 2: |
|
146 $dbname = trim($_POST['dbname']); |
|
147 $uname = trim($_POST['uname']); |
|
148 $passwrd = trim($_POST['pwd']); |
|
149 $dbhost = trim($_POST['dbhost']); |
|
150 $prefix = trim($_POST['prefix']); |
|
151 if (empty($prefix)) $prefix = 'wp_'; |
|
152 |
|
153 // Test the db connection. |
|
154 /**#@+ |
|
155 * @ignore |
|
156 */ |
|
157 define('DB_NAME', $dbname); |
|
158 define('DB_USER', $uname); |
|
159 define('DB_PASSWORD', $passwrd); |
|
160 define('DB_HOST', $dbhost); |
|
161 /**#@-*/ |
|
162 |
|
163 // We'll fail here if the values are no good. |
|
164 require_wp_db(); |
|
165 if ( !empty($wpdb->error) ) |
|
166 wp_die($wpdb->error->get_error_message()); |
|
167 |
|
168 foreach ($configFile as $line_num => $line) { |
|
169 switch (substr($line,0,16)) { |
|
170 case "define('DB_NAME'": |
|
171 $configFile[$line_num] = str_replace("votre_nom_de_bdd", $dbname, $line); |
|
172 break; |
|
173 case "define('DB_USER'": |
|
174 $configFile[$line_num] = str_replace("'votre_utilisateur_de_bdd'", "'$uname'", $line); |
|
175 break; |
|
176 case "define('DB_PASSW": |
|
177 $configFile[$line_num] = str_replace("'votre_mdp_de_bdd'", "'$passwrd'", $line); |
|
178 break; |
|
179 case "define('DB_HOST'": |
|
180 $configFile[$line_num] = str_replace("localhost", $dbhost, $line); |
|
181 break; |
|
182 case '$table_prefix =': |
|
183 $configFile[$line_num] = str_replace('wp_', $prefix, $line); |
|
184 break; |
|
185 } |
|
186 } |
|
187 if ( ! is_writable(ABSPATH) ) : |
|
188 display_header(); |
|
189 ?> |
|
190 <p>Désolé, mais je ne peux pas créer le fichier <code>wp-config.php</code>.</p> |
|
191 <p>Vous pouvez créer un fichier <code>wp-config.php</code> manuellement, et y copier/coller le texte suivant.</p> |
|
192 <textarea cols="90" rows="15"><?php |
|
193 foreach( $configFile as $line ) { |
|
194 echo htmlentities($line); |
|
195 } |
|
196 ?></textarea> |
|
197 <p>Ceci fait, cliquez sur "Lancer l'installation !"</p> |
|
198 <p class="step"><a href="install.php" class="button">Lancer l'installation !</a></p> |
|
199 <?php |
|
200 else : |
|
201 $handle = fopen(ABSPATH . 'wp-config.php', 'w'); |
|
202 foreach( $configFile as $line ) { |
|
203 fwrite($handle, $line); |
|
204 } |
|
205 fclose($handle); |
|
206 chmod(ABSPATH . 'wp-config.php', 0666); |
|
207 display_header(); |
|
208 ?> |
|
209 <p>Formidable ! Nous sommes arrivés au terme de cette partie de l'installation. WordPress peut maintenant communiquer avec votre base de données. Si vous êtes prêt, il est grand temps de…</p> |
|
210 |
|
211 <p class="step"><a href="install.php" class="button">Lancer l'installation !</a></p> |
|
212 <?php |
|
213 endif; |
|
214 break; |
|
215 } |
|
216 ?> |
|
217 </body> |
|
218 </html> |