29 * @ignore |
36 * @ignore |
30 */ |
37 */ |
31 define('ABSPATH', dirname(dirname(__FILE__)).'/'); |
38 define('ABSPATH', dirname(dirname(__FILE__)).'/'); |
32 define('WPINC', 'wp-includes'); |
39 define('WPINC', 'wp-includes'); |
33 define('WP_CONTENT_DIR', ABSPATH . 'wp-content'); |
40 define('WP_CONTENT_DIR', ABSPATH . 'wp-content'); |
|
41 define('WP_DEBUG', false); |
34 /**#@-*/ |
42 /**#@-*/ |
35 |
43 |
|
44 require(ABSPATH . WPINC . '/load.php'); |
|
45 require(ABSPATH . WPINC . '/version.php'); |
|
46 |
|
47 // Check for the required PHP version and for the MySQL extension or a database drop-in. |
|
48 wp_check_php_mysql_versions(); |
|
49 |
|
50 require_once(ABSPATH . WPINC . '/functions.php'); |
|
51 |
|
52 // Also loads plugin.php, l10n.php, pomo/mo.php (all required by setup-config.php) |
|
53 wp_load_translations_early(); |
|
54 |
|
55 // Turn register_globals off. |
|
56 wp_unregister_GLOBALS(); |
|
57 |
36 require_once(ABSPATH . WPINC . '/compat.php'); |
58 require_once(ABSPATH . WPINC . '/compat.php'); |
37 require_once(ABSPATH . WPINC . '/functions.php'); |
59 require_once(ABSPATH . WPINC . '/class-wp-error.php'); |
38 require_once(ABSPATH . WPINC . '/classes.php'); |
60 require_once(ABSPATH . WPINC . '/formatting.php'); |
39 |
61 |
40 if (!file_exists(ABSPATH . 'wp-config-sample.php')) |
62 // Add magic quotes and set up $_REQUEST ( $_GET + $_POST ) |
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.'); |
63 wp_magic_quotes(); |
42 |
64 |
43 $configFile = file(ABSPATH . 'wp-config-sample.php'); |
65 if ( ! file_exists( ABSPATH . 'wp-config-sample.php' ) ) |
|
66 wp_die( __( 'Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file from your WordPress installation.' ) ); |
|
67 |
|
68 $config_file = file(ABSPATH . 'wp-config-sample.php'); |
44 |
69 |
45 // Check if wp-config.php has been created |
70 // Check if wp-config.php has been created |
46 if (file_exists(ABSPATH . 'wp-config.php')) |
71 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>"); |
72 wp_die( '<p>' . sprintf( __( "The file 'wp-config.php' already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='%s'>installing now</a>." ), 'install.php' ) . '</p>' ); |
48 |
73 |
49 // Check if wp-config.php exists above the root directory but is not part of another install |
74 // 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')) |
75 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>"); |
76 wp_die( '<p>' . sprintf( __( "The file 'wp-config.php' already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='install.php'>installing now</a>."), 'install.php' ) . '</p>' ); |
52 |
77 |
53 if ( version_compare( '4.3', phpversion(), '>' ) ) |
78 $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : 0; |
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 |
79 |
64 /** |
80 /** |
65 * Display setup wp-config.php file header. |
81 * Display setup wp-config.php file header. |
66 * |
82 * |
67 * @ignore |
83 * @ignore |
68 * @since 2.3.0 |
84 * @since 2.3.0 |
69 * @package WordPress |
85 * @package WordPress |
70 * @subpackage Installer_WP_Config |
86 * @subpackage Installer_WP_Config |
71 */ |
87 */ |
72 function display_header() { |
88 function display_header() { |
|
89 global $wp_version; |
|
90 |
73 header( 'Content-Type: text/html; charset=utf-8' ); |
91 header( 'Content-Type: text/html; charset=utf-8' ); |
74 ?> |
92 ?> |
75 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
93 <!DOCTYPE html> |
76 <html xmlns="http://www.w3.org/1999/xhtml"> |
94 <html xmlns="http://www.w3.org/1999/xhtml"<?php if ( is_rtl() ) echo ' dir="rtl"'; ?>> |
77 <head> |
95 <head> |
78 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
96 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
79 <title>WordPress › Création du fichier du configuration</title> |
97 <title><?php _e( 'WordPress › Setup Configuration File' ); ?></title> |
80 <link rel="stylesheet" href="css/install.css" type="text/css" /> |
98 <link rel="stylesheet" href="css/install.css?ver=<?php echo preg_replace( '/[^0-9a-z\.-]/i', '', $wp_version ); ?>" type="text/css" /> |
81 |
99 |
82 </head> |
100 </head> |
83 <body> |
101 <body<?php if ( is_rtl() ) echo ' class="rtl"'; ?>> |
84 <h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png" /></h1> |
102 <h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png?ver=20120216" /></h1> |
85 <?php |
103 <?php |
86 }//end function display_header(); |
104 }//end function display_header(); |
87 |
105 |
88 switch($step) { |
106 switch($step) { |
89 case 0: |
107 case 0: |
90 display_header(); |
108 display_header(); |
91 ?> |
109 ?> |
92 |
110 |
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> |
111 <p><?php _e( 'Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.' ) ?></p> |
94 <ol> |
112 <ol> |
95 <li>Le nom de la base de données</li> |
113 <li><?php _e( 'Database name' ); ?></li> |
96 <li>Votre identifiant de base de données</li> |
114 <li><?php _e( 'Database username' ); ?></li> |
97 <li>Votre mot de passe de base de données</li> |
115 <li><?php _e( 'Database password' ); ?></li> |
98 <li>L'hôte de la base de données</li> |
116 <li><?php _e( 'Database host' ); ?></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> |
117 <li><?php _e( 'Table prefix (if you want to run more than one WordPress in a single database)' ); ?></li> |
100 </ol> |
118 </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> |
119 <p><strong><?php _e( "If for any reason this automatic file creation doesn't work, don't worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <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> |
120 <p><?php _e( "In all likelihood, these items were supplied to you by your Web Host. If you do not have this information, then you will need to contact them before you can continue. If you’re all ready…" ); ?></p> |
103 |
121 |
104 <p class="step"><a href="setup-config.php?step=1" class="button">Allons-y !</a></p> |
122 <p class="step"><a href="setup-config.php?step=1<?php if ( isset( $_GET['noapi'] ) ) echo '&noapi'; ?>" class="button"><?php _e( 'Let’s go!' ); ?></a></p> |
105 <?php |
123 <?php |
106 break; |
124 break; |
107 |
125 |
108 case 1: |
126 case 1: |
109 display_header(); |
127 display_header(); |
110 ?> |
128 ?> |
111 <form method="post" action="setup-config.php?step=2"> |
129 <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> |
130 <p><?php _e( "Below you should enter your database connection details. If you're not sure about these, contact your host." ); ?></p> |
113 <table class="form-table"> |
131 <table class="form-table"> |
114 <tr> |
132 <tr> |
115 <th scope="row"><label for="dbname">Nom de la base de données</label></th> |
133 <th scope="row"><label for="dbname"><?php _e( 'Database Name' ); ?></label></th> |
116 <td><input name="dbname" id="dbname" type="text" size="25" value="wordpress" /></td> |
134 <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> |
135 <td><?php _e( 'The name of the database you want to run WP in.' ); ?></td> |
118 </tr> |
136 </tr> |
119 <tr> |
137 <tr> |
120 <th scope="row"><label for="uname">Identifiant</label></th> |
138 <th scope="row"><label for="uname"><?php _e( 'User Name' ); ?></label></th> |
121 <td><input name="uname" id="uname" type="text" size="25" value="username" /></td> |
139 <td><input name="uname" id="uname" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'username', 'example username' ), ENT_QUOTES ); ?>" /></td> |
122 <td>Votre identifiant MySQL.</td> |
140 <td><?php _e( 'Your MySQL username' ); ?></td> |
123 </tr> |
141 </tr> |
124 <tr> |
142 <tr> |
125 <th scope="row"><label for="pwd">Mot de passe</label></th> |
143 <th scope="row"><label for="pwd"><?php _e( 'Password' ); ?></label></th> |
126 <td><input name="pwd" id="pwd" type="text" size="25" value="password" /></td> |
144 <td><input name="pwd" id="pwd" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'password', 'example password' ), ENT_QUOTES ); ?>" /></td> |
127 <td>...et votre mot de passe MySQL.</td> |
145 <td><?php _e( '…and your MySQL password.' ); ?></td> |
128 </tr> |
146 </tr> |
129 <tr> |
147 <tr> |
130 <th scope="row"><label for="dbhost">Hôte de la base de données</label></th> |
148 <th scope="row"><label for="dbhost"><?php _e( 'Database Host' ); ?></label></th> |
131 <td><input name="dbhost" id="dbhost" type="text" size="25" value="localhost" /></td> |
149 <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> |
150 <td><?php _e( 'You should be able to get this info from your web host, if <code>localhost</code> does not work.' ); ?></td> |
133 </tr> |
151 </tr> |
134 <tr> |
152 <tr> |
135 <th scope="row"><label for="prefix">Préfixe de table</label></th> |
153 <th scope="row"><label for="prefix"><?php _e( 'Table Prefix' ); ?></label></th> |
136 <td><input name="prefix" type="text" id="prefix" value="wp_" size="25" /></td> |
154 <td><input name="prefix" id="prefix" type="text" 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> |
155 <td><?php _e( 'If you want to run multiple WordPress installations in a single database, change this.' ); ?></td> |
138 </tr> |
156 </tr> |
139 </table> |
157 </table> |
140 <p class="step"><input name="submit" type="submit" value="Valider" class="button" /></p> |
158 <?php if ( isset( $_GET['noapi'] ) ) { ?><input name="noapi" type="hidden" value="1" /><?php } ?> |
|
159 <p class="step"><input name="submit" type="submit" value="<?php echo htmlspecialchars( __( 'Submit' ), ENT_QUOTES ); ?>" class="button" /></p> |
141 </form> |
160 </form> |
142 <?php |
161 <?php |
143 break; |
162 break; |
144 |
163 |
145 case 2: |
164 case 2: |
146 $dbname = trim($_POST['dbname']); |
165 foreach ( array( 'dbname', 'uname', 'pwd', 'dbhost', 'prefix' ) as $key ) |
147 $uname = trim($_POST['uname']); |
166 $$key = trim( stripslashes( $_POST[ $key ] ) ); |
148 $passwrd = trim($_POST['pwd']); |
167 |
149 $dbhost = trim($_POST['dbhost']); |
168 $tryagain_link = '</p><p class="step"><a href="setup-config.php?step=1" onclick="javascript:history.go(-1);return false;" class="button">' . __( 'Try Again' ) . '</a>'; |
150 $prefix = trim($_POST['prefix']); |
169 |
151 if (empty($prefix)) $prefix = 'wp_'; |
170 if ( empty( $prefix ) ) |
|
171 wp_die( __( '<strong>ERROR</strong>: "Table Prefix" must not be empty.' . $tryagain_link ) ); |
|
172 |
|
173 // Validate $prefix: it can only contain letters, numbers and underscores. |
|
174 if ( preg_match( '|[^a-z0-9_]|i', $prefix ) ) |
|
175 wp_die( __( '<strong>ERROR</strong>: "Table Prefix" can only contain numbers, letters, and underscores.' . $tryagain_link ) ); |
152 |
176 |
153 // Test the db connection. |
177 // Test the db connection. |
154 /**#@+ |
178 /**#@+ |
155 * @ignore |
179 * @ignore |
156 */ |
180 */ |
157 define('DB_NAME', $dbname); |
181 define('DB_NAME', $dbname); |
158 define('DB_USER', $uname); |
182 define('DB_USER', $uname); |
159 define('DB_PASSWORD', $passwrd); |
183 define('DB_PASSWORD', $pwd); |
160 define('DB_HOST', $dbhost); |
184 define('DB_HOST', $dbhost); |
161 /**#@-*/ |
185 /**#@-*/ |
162 |
186 |
163 // We'll fail here if the values are no good. |
187 // We'll fail here if the values are no good. |
164 require_wp_db(); |
188 require_wp_db(); |
165 if ( !empty($wpdb->error) ) |
189 if ( ! empty( $wpdb->error ) ) |
166 wp_die($wpdb->error->get_error_message()); |
190 wp_die( $wpdb->error->get_error_message() . $tryagain_link ); |
167 |
191 |
168 foreach ($configFile as $line_num => $line) { |
192 // Fetch or generate keys and salts. |
169 switch (substr($line,0,16)) { |
193 $no_api = isset( $_POST['noapi'] ); |
170 case "define('DB_NAME'": |
194 if ( ! $no_api ) { |
171 $configFile[$line_num] = str_replace("votre_nom_de_bdd", $dbname, $line); |
195 require_once( ABSPATH . WPINC . '/class-http.php' ); |
|
196 require_once( ABSPATH . WPINC . '/http.php' ); |
|
197 wp_fix_server_vars(); |
|
198 /**#@+ |
|
199 * @ignore |
|
200 */ |
|
201 function get_bloginfo() { |
|
202 return ( ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . str_replace( $_SERVER['PHP_SELF'], '/wp-admin/setup-config.php', '' ) ); |
|
203 } |
|
204 /**#@-*/ |
|
205 $secret_keys = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' ); |
|
206 } |
|
207 |
|
208 if ( $no_api || is_wp_error( $secret_keys ) ) { |
|
209 $secret_keys = array(); |
|
210 require_once( ABSPATH . WPINC . '/pluggable.php' ); |
|
211 for ( $i = 0; $i < 8; $i++ ) { |
|
212 $secret_keys[] = wp_generate_password( 64, true, true ); |
|
213 } |
|
214 } else { |
|
215 $secret_keys = explode( "\n", wp_remote_retrieve_body( $secret_keys ) ); |
|
216 foreach ( $secret_keys as $k => $v ) { |
|
217 $secret_keys[$k] = substr( $v, 28, 64 ); |
|
218 } |
|
219 } |
|
220 |
|
221 $key = 0; |
|
222 // Not a PHP5-style by-reference foreach, as this file must be parseable by PHP4. |
|
223 foreach ( $config_file as $line_num => $line ) { |
|
224 if ( '$table_prefix =' == substr( $line, 0, 16 ) ) { |
|
225 $config_file[ $line_num ] = '$table_prefix = \'' . addcslashes( $prefix, "\\'" ) . "';\r\n"; |
|
226 continue; |
|
227 } |
|
228 |
|
229 if ( ! preg_match( '/^define\(\'([A-Z_]+)\',([ ]+)/', $line, $match ) ) |
|
230 continue; |
|
231 |
|
232 $constant = $match[1]; |
|
233 $padding = $match[2]; |
|
234 |
|
235 switch ( $constant ) { |
|
236 case 'DB_NAME' : |
|
237 case 'DB_USER' : |
|
238 case 'DB_PASSWORD' : |
|
239 case 'DB_HOST' : |
|
240 $config_file[ $line_num ] = "define('" . $constant . "'," . $padding . "'" . addcslashes( constant( $constant ), "\\'" ) . "');\r\n"; |
172 break; |
241 break; |
173 case "define('DB_USER'": |
242 case 'AUTH_KEY' : |
174 $configFile[$line_num] = str_replace("'votre_utilisateur_de_bdd'", "'$uname'", $line); |
243 case 'SECURE_AUTH_KEY' : |
|
244 case 'LOGGED_IN_KEY' : |
|
245 case 'NONCE_KEY' : |
|
246 case 'AUTH_SALT' : |
|
247 case 'SECURE_AUTH_SALT' : |
|
248 case 'LOGGED_IN_SALT' : |
|
249 case 'NONCE_SALT' : |
|
250 $config_file[ $line_num ] = "define('" . $constant . "'," . $padding . "'" . $secret_keys[$key++] . "');\r\n"; |
175 break; |
251 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 } |
252 } |
186 } |
253 } |
|
254 unset( $line ); |
|
255 |
187 if ( ! is_writable(ABSPATH) ) : |
256 if ( ! is_writable(ABSPATH) ) : |
188 display_header(); |
257 display_header(); |
189 ?> |
258 ?> |
190 <p>Désolé, mais je ne peux pas créer le fichier <code>wp-config.php</code>.</p> |
259 <p><?php _e( "Sorry, but I can't write the <code>wp-config.php</code> file." ); ?></p> |
191 <p>Vous pouvez créer un fichier <code>wp-config.php</code> manuellement, et y copier/coller le texte suivant.</p> |
260 <p><?php _e( 'You can create the <code>wp-config.php</code> manually and paste the following text into it.' ); ?></p> |
192 <textarea cols="90" rows="15"><?php |
261 <textarea cols="98" rows="15" class="code"><?php |
193 foreach( $configFile as $line ) { |
262 foreach( $config_file as $line ) { |
194 echo htmlentities($line); |
263 echo htmlentities($line, ENT_COMPAT, 'UTF-8'); |
195 } |
264 } |
196 ?></textarea> |
265 ?></textarea> |
197 <p>Ceci fait, cliquez sur "Lancer l'installation !"</p> |
266 <p><?php _e( 'After you\'ve done that, click "Run the install."' ); ?></p> |
198 <p class="step"><a href="install.php" class="button">Lancer l'installation !</a></p> |
267 <p class="step"><a href="install.php" class="button"><?php _e( 'Run the install' ); ?></a></p> |
199 <?php |
268 <?php |
200 else : |
269 else : |
201 $handle = fopen(ABSPATH . 'wp-config.php', 'w'); |
270 $handle = fopen(ABSPATH . 'wp-config.php', 'w'); |
202 foreach( $configFile as $line ) { |
271 foreach( $config_file as $line ) { |
203 fwrite($handle, $line); |
272 fwrite($handle, $line); |
204 } |
273 } |
205 fclose($handle); |
274 fclose($handle); |
206 chmod(ABSPATH . 'wp-config.php', 0666); |
275 chmod(ABSPATH . 'wp-config.php', 0666); |
207 display_header(); |
276 display_header(); |
208 ?> |
277 ?> |
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> |
278 <p><?php _e( "All right sparky! You've made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to…" ); ?></p> |
210 |
279 |
211 <p class="step"><a href="install.php" class="button">Lancer l'installation !</a></p> |
280 <p class="step"><a href="install.php" class="button"><?php _e( 'Run the install' ); ?></a></p> |
212 <?php |
281 <?php |
213 endif; |
282 endif; |
214 break; |
283 break; |
215 } |
284 } |
216 ?> |
285 ?> |