2003-12-30 04:31:13 -05:00
< ? php
2008-08-14 02:30:38 -04:00
/**
* Retrieves and creates the wp - config . php file .
*
* The permissions for the base directory must allow for writing files in order
* for the wp - config . php to be created using this page .
*
* @ package WordPress
* @ subpackage Administration
*/
/**
* We are installing .
*
* @ since unknown
* @ package WordPress
*/
2005-03-17 18:34:06 -05:00
define ( 'WP_INSTALLING' , true );
2008-07-02 13:03:55 -04:00
//These three defines are required to allow us to use require_wp_db() to load the database class while being wp-content/wp-db.php aware
2007-10-06 04:18:33 -04:00
define ( 'ABSPATH' , dirname ( dirname ( __FILE__ )) . '/' );
define ( 'WPINC' , 'wp-includes' );
2008-07-02 13:03:55 -04:00
define ( 'WP_CONTENT_DIR' , ABSPATH . 'wp-content' );
2004-01-12 05:18:25 -05:00
2007-09-19 00:27:56 -04:00
require_once ( '../wp-includes/compat.php' );
require_once ( '../wp-includes/functions.php' );
2007-12-19 21:10:09 -05:00
require_once ( '../wp-includes/classes.php' );
2007-09-19 00:27:56 -04:00
2004-01-12 05:18:25 -05:00
if ( ! file_exists ( '../wp-config-sample.php' ))
2007-09-19 00:27:56 -04:00
wp_die ( 'Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file from your WordPress installation.' );
2006-04-01 17:59:31 -05:00
2004-02-11 16:59:18 -05:00
$configFile = file ( '../wp-config-sample.php' );
2008-02-05 01:47:27 -05:00
if ( ! is_writable ( '../' ))
2007-09-19 00:27:56 -04:00
wp_die ( " Sorry, I can't write to the directory. You'll have to either change the permissions on your WordPress directory or create your wp-config.php manually. " );
2003-12-30 04:31:13 -05:00
2007-09-19 00:27:56 -04:00
// Check if wp-config.php has been created
if ( file_exists ( '../wp-config.php' ))
wp_die ( " <p>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='install.php'>installing now</a>.</p> " );
2006-03-14 02:42:14 -05:00
2008-05-21 01:59:27 -04:00
// Check if wp-config.php exists above the root directory
if ( file_exists ( '../../wp-config.php' ))
wp_die ( " <p>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>.</p> " );
2006-04-01 17:59:31 -05:00
if ( isset ( $_GET [ 'step' ]))
$step = $_GET [ 'step' ];
else
$step = 0 ;
2007-09-19 00:27:56 -04:00
2008-08-14 02:30:38 -04:00
/**
* Display setup wp - config . php file header .
*
* @ since unknown
* @ package WordPress
* @ subpackage Installer_WP_Config
*/
function display_header () {
2007-09-19 00:27:56 -04:00
header ( 'Content-Type: text/html; charset=utf-8' );
2006-04-01 17:59:31 -05:00
?>
2003-12-30 04:31:13 -05:00
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head >
2004-08-30 03:16:40 -04:00
< meta http - equiv = " Content-Type " content = " text/html; charset=utf-8 " />
2008-01-06 14:15:33 -05:00
< title > WordPress & rsaquo ; Setup Configuration File </ title >
2008-02-21 18:55:11 -05:00
< link rel = " stylesheet " href = " <?php echo $admin_dir ; ?>css/install.css " type = " text/css " />
2008-01-06 14:15:33 -05:00
2003-12-30 04:31:13 -05:00
</ head >
2006-04-01 17:59:31 -05:00
< body >
< h1 id = " logo " >< img alt = " WordPress " src = " images/wordpress-logo.png " /></ h1 >
2003-12-30 04:31:13 -05:00
< ? php
2007-09-19 00:27:56 -04:00
} //end function display_header();
2003-12-30 04:31:13 -05:00
switch ( $step ) {
case 0 :
2007-09-19 00:27:56 -04:00
display_header ();
2006-11-19 02:56:05 -05:00
?>
< p > Welcome to WordPress . Before getting started , we need some information on the database . You will need to know the following items before proceeding .</ p >
< ol >
< li > Database name </ li >
< li > Database username </ li >
< li > Database password </ li >
< li > Database host </ li >
< li > Table prefix ( if you want to run more than one WordPress in a single database ) </ li >
</ ol >
2004-05-21 03:02:46 -04:00
< p >< strong > 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 >
2008-02-21 18:55:11 -05:00
< p > In all likelihood , these items were supplied to you by your ISP . If you do not have this information , then you will need to contact them before you can continue . If you & #8217;re all ready…</p>
2008-07-10 12:59:17 -04:00
< p class = " step " >< a href = " setup-config.php?step=1 " class = " button " > Let & #8217;s go!</a></p>
2003-12-30 04:31:13 -05:00
< ? php
break ;
case 1 :
2007-09-19 00:27:56 -04:00
display_header ();
2006-11-19 02:56:05 -05:00
?>
2006-04-01 17:59:31 -05:00
< form method = " post " action = " setup-config.php?step=2 " >
2006-11-19 02:56:05 -05:00
< p > Below you should enter your database connection details . If you ' re not sure about these , contact your host . </ p >
2008-02-23 23:33:10 -05:00
< table class = " form-table " >
2006-11-19 02:56:05 -05:00
< tr >
2008-05-04 06:37:06 -04:00
< th scope = " row " >< label for = " dbname " > Database Name </ label ></ th >
< td >< input name = " dbname " id = " dbname " type = " text " size = " 25 " value = " wordpress " /></ td >
2006-11-19 02:56:05 -05:00
< td > The name of the database you want to run WP in . </ td >
</ tr >
< tr >
2008-05-04 06:37:06 -04:00
< th scope = " row " >< label for = " uname " > User Name </ label ></ th >
< td >< input name = " uname " id = " uname " type = " text " size = " 25 " value = " username " /></ td >
2006-11-19 02:56:05 -05:00
< td > Your MySQL username </ td >
</ tr >
< tr >
2008-05-04 06:37:06 -04:00
< th scope = " row " >< label for = " pwd " > Password </ label ></ th >
< td >< input name = " pwd " id = " pwd " type = " text " size = " 25 " value = " password " /></ td >
2006-11-19 02:56:05 -05:00
< td >... and MySQL password .</ td >
</ tr >
< tr >
2008-05-04 06:37:06 -04:00
< th scope = " row " >< label for = " dbhost " > Database Host </ label ></ th >
< td >< input name = " dbhost " id = " dbhost " type = " text " size = " 25 " value = " localhost " /></ td >
2006-11-19 02:56:05 -05:00
< td > 99 % chance you won ' t need to change this value .</ td >
</ tr >
< tr >
2008-05-04 06:37:06 -04:00
< th scope = " row " >< label for = " prefix " > Table Prefix </ label ></ th >
< td >< input name = " prefix " id = " prefix " type = " text " id = " prefix " value = " wp_ " size = " 25 " /></ td >
2006-11-19 02:56:05 -05:00
< td > If you want to run multiple WordPress installations in a single database , change this .</ td >
</ tr >
</ table >
2008-07-10 12:59:17 -04:00
< p class = " step " >< input name = " submit " type = " submit " value = " Submit " class = " button " /></ p >
2006-11-19 02:56:05 -05:00
</ form >
2003-12-30 04:31:13 -05:00
< ? php
break ;
2006-02-12 02:53:23 -05:00
2003-12-30 04:31:13 -05:00
case 2 :
2005-11-24 23:36:03 -05:00
$dbname = trim ( $_POST [ 'dbname' ]);
2006-11-19 02:56:05 -05:00
$uname = trim ( $_POST [ 'uname' ]);
$passwrd = trim ( $_POST [ 'pwd' ]);
$dbhost = trim ( $_POST [ 'dbhost' ]);
2005-11-24 23:36:03 -05:00
$prefix = trim ( $_POST [ 'prefix' ]);
2003-12-30 04:31:13 -05:00
if ( empty ( $prefix )) $prefix = 'wp_' ;
2004-01-12 05:18:25 -05:00
2006-11-19 02:56:05 -05:00
// Test the db connection.
define ( 'DB_NAME' , $dbname );
define ( 'DB_USER' , $uname );
define ( 'DB_PASSWORD' , $passwrd );
define ( 'DB_HOST' , $dbhost );
2004-01-12 05:18:25 -05:00
2006-11-19 02:56:05 -05:00
// We'll fail here if the values are no good.
2007-10-06 04:18:33 -04:00
require_wp_db ();
2007-12-19 21:10:09 -05:00
if ( ! empty ( $wpdb -> error ) )
wp_die ( $wpdb -> error -> get_error_message ());
2004-02-16 18:23:25 -05:00
$handle = fopen ( '../wp-config.php' , 'w' );
2003-12-30 04:31:13 -05:00
2006-11-19 02:56:05 -05:00
foreach ( $configFile as $line_num => $line ) {
switch ( substr ( $line , 0 , 16 )) {
case " define('DB_NAME' " :
2007-03-08 13:31:46 -05:00
fwrite ( $handle , str_replace ( " putyourdbnamehere " , $dbname , $line ));
2006-11-19 02:56:05 -05:00
break ;
case " define('DB_USER' " :
2007-03-08 13:31:46 -05:00
fwrite ( $handle , str_replace ( " 'usernamehere' " , " ' $uname ' " , $line ));
2006-11-19 02:56:05 -05:00
break ;
case " define('DB_PASSW " :
2007-03-08 13:31:46 -05:00
fwrite ( $handle , str_replace ( " 'yourpasswordhere' " , " ' $passwrd ' " , $line ));
2006-11-19 02:56:05 -05:00
break ;
case " define('DB_HOST' " :
fwrite ( $handle , str_replace ( " localhost " , $dbhost , $line ));
break ;
2003-12-31 18:51:41 -05:00
case '$table_prefix =' :
2003-12-30 04:31:13 -05:00
fwrite ( $handle , str_replace ( 'wp_' , $prefix , $line ));
break ;
2006-11-19 02:56:05 -05:00
default :
fwrite ( $handle , $line );
}
}
fclose ( $handle );
2003-12-30 04:31:13 -05:00
chmod ( '../wp-config.php' , 0666 );
2008-02-05 01:47:27 -05:00
2007-09-19 00:27:56 -04:00
display_header ();
2006-11-19 02:56:05 -05:00
?>
2008-02-21 18:55:11 -05:00
< p > 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 & hellip ; </ p >
2008-07-10 12:59:17 -04:00
< p class = " step " >< a href = " install.php " class = " button " > Run the install </ a ></ p >
2003-12-30 04:31:13 -05:00
< ? php
break ;
}
2006-04-01 17:59:31 -05:00
?>
2003-12-30 04:31:13 -05:00
</ body >
</ html >