<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[12756] trunk/wp-admin/includes: implement multisite schema, upgrade,
  See #11644</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/12756">12756</a></dd>
<dt>Author</dt> <dd>wpmuguru</dd>
<dt>Date</dt> <dd>2010-01-19 00:04:25 +0000 (Tue, 19 Jan 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre>implement multisite schema, upgrade, See <a href="http://trac.wordpress.org/ticket/11644">#11644</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpadminincludesschemaphp">trunk/wp-admin/includes/schema.php</a></li>
<li><a href="#trunkwpadminincludesupgradephp">trunk/wp-admin/includes/upgrade.php</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkwpadminincludeshtaccessms">trunk/wp-admin/includes/htaccess.ms</a></li>
<li><a href="#trunkwpadminincludeswpconfigms">trunk/wp-admin/includes/wp-config.ms</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpadminincludeshtaccessms"></a>
<div class="addfile"><h4>Added: trunk/wp-admin/includes/htaccess.ms (0 => 12756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/htaccess.ms                                (rev 0)
+++ trunk/wp-admin/includes/htaccess.ms        2010-01-19 00:04:25 UTC (rev 12756)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+RewriteEngine On
+RewriteBase BASE/
+
+#uploaded files
+RewriteRule ^(.*/)?files/$ index.php [L]
+RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
+RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]
+
+# add a trailing slash to /wp-admin
+RewriteCond %{REQUEST_URI} ^.*/wp-admin$
+RewriteRule ^(.+)$ $1/ [R=301,L]
+
+RewriteCond %{REQUEST_FILENAME} -f [OR]
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteRule . - [L]
+RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
+RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
+RewriteRule . index.php [L]
+
+&lt;IfModule mod_security.c&gt;
+&lt;Files async-upload.php&gt;
+SecFilterEngine Off
+SecFilterScanPOST Off
+&lt;/Files&gt;
+&lt;/IfModule&gt;
+
</ins></span></pre></div>
<a id="trunkwpadminincludesschemaphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/schema.php (12755 => 12756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/schema.php        2010-01-18 23:34:36 UTC (rev 12755)
+++ trunk/wp-admin/includes/schema.php        2010-01-19 00:04:25 UTC (rev 12756)
</span><span class="lines">@@ -317,6 +317,12 @@
</span><span class="cx">         'embed_size_h' =&gt; 600,
</span><span class="cx">         );
</span><span class="cx"> 
</span><ins>+        // 3.0 multisite
+        if ( is_multisite() ) {
+                 $options[ 'blogdescription' ] = sprintf(__('Just another %s site'), $current_site-&gt;site_name );
+                 $options[ 'permalink_structure' ] = '/%year%/%monthnum%/%day%/%postname%/';
+        }
+
</ins><span class="cx">         // Set autoload to no for these options
</span><span class="cx">         $fat_options = array( 'moderation_keys', 'recently_edited', 'blacklist_keys' );
</span><span class="cx"> 
</span><span class="lines">@@ -606,4 +612,119 @@
</span><span class="cx">         }
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * populate network settings
+ *
+ * @since 3.0
+ *
+ * @param int $network_id id of network to populate
+ */
+function populate_network( $network_id = 1, $domain = '', $email = '', $site_name = '', $path = '/', $vhost = 'no' ) {
+        global $wpdb, $current_site, $wp_version, $wp_db_version, $wp_rewrite;
+
+        //@todo: turn these checks into returned messages
+        if( $domain == '' )
+                die( 'You must provide a domain name!' );
+        if( $site_name == '' )
+                die( 'You must provide a site name!' );
+
+        // check for network collision
+        $existing_network = $wpdb-&gt;get_var( $wpdb-&gt;prepare( &quot;SELECT id FROM {$wpdb-&gt;site} WHERE id = %d&quot;, $network_id ) );
+        if( $existing_network == $network_id )
+                die( 'That network already exists!' );
+
+        $site_user = get_user_by_email( $email );
+        if( !$site_user )
+                die( 'You must provide an email address!' );
+        // set up site tables
+        $template = get_option( 'template' );
+        $stylesheet = get_option( 'stylesheet' );
+        if ( $template != $stylesheet ) {
+                $allowed_themes = array( $template, $stylesheet );
+        } else {
+                $allowed_themes = array( $stylesheet );
+        }
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'site_name', %s)&quot;, $network_id, $site_name ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'admin_email', %s)&quot;, $network_id, $site_user-&gt;user_email ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'admin_user_id', %d)&quot;, $network_id, $site_user-&gt;ID ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'registration', 'none')&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;site.&quot; ( id, domain, path ) VALUES ( %d, %s, %s )&quot;, $network_id, $domain, $path ) );
+        if ( !is_multisite() ) {
+                $wpdb-&gt;query( &quot;INSERT INTO &quot; . $wpdb-&gt;sitecategories . &quot; ( cat_ID, cat_name, category_nicename, last_updated ) VALUES (1, 'Uncategorized', 'uncategorized', NOW())&quot; );
+                $wpdb-&gt;query( &quot;INSERT INTO &quot; . $wpdb-&gt;sitecategories . &quot; ( cat_ID, cat_name, category_nicename, last_updated ) VALUES (2, 'Blogroll', 'blogroll', NOW())&quot; );
+        }
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'upload_filetypes', 'jpg jpeg png gif mp3 mov avi wmv midi mid pdf' )&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'blog_upload_space', '10' )&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'fileupload_maxk', '1500' )&quot;, $network_id ) );
+        if ( !is_multisite() ) {
+                $site_admins = array( $site_user-&gt;user_login );
+                $users = get_users_of_blog();
+                if ( $users ) {
+                        foreach ( $users as $user ) {
+                                if ( is_super_admin( $user-&gt;ID ) &amp;&amp; !in_array( $user-&gt;user_login, $site_admins ) ) {
+                                        $site_admins[] = $user-&gt;user_login;
+                                }
+                        }
+                }
+        } else {
+                $site_admins = get_site_option( 'site_admins' );
+        }
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'site_admins', '&quot; . serialize( $site_admins ) . &quot;' )&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'allowedthemes', '&quot; . serialize( $allowed_themes ) . &quot;' )&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'illegal_names', '&quot; . serialize( array(  &quot;www&quot;, &quot;web&quot;, &quot;root&quot;, &quot;admin&quot;, &quot;main&quot;, &quot;invite&quot;, &quot;administrator&quot; ) ) . &quot;' )&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'wpmu_upgrade_site', '{$wp_db_version}')&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'welcome_email', 'Dear User,
+
+Your new SITE_NAME blog has been successfully set up at:
+BLOG_URL
+
+You can log in to the administrator account with the following information:
+Username: USERNAME
+Password: PASSWORD
+Login Here: BLOG_URLwp-login.php
+
+We hope you enjoy your new blog.
+Thanks!
+
+--The Team @ SITE_NAME')&quot;, $network_id ) );
+        $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO &quot;.$wpdb-&gt;sitemeta.&quot; (meta_id, site_id, meta_key, meta_value) VALUES (NULL, %d, 'first_post', 'Welcome to &lt;a href=\&quot;SITE_URL\&quot;&gt;SITE_NAME&lt;/a&gt;. This is your first post. Edit or delete it, then start blogging!' )&quot;, $network_id ) );
+        $weblog_title = stripslashes( $_POST[ 'weblog_title' ] );
+
+        $current_site-&gt;domain = $domain;
+        $current_site-&gt;path = $base;
+        $current_site-&gt;site_name = ucfirst( $domain );
+
+        if ( !is_multisite() ) {
+                $wpdb-&gt;query( $wpdb-&gt;prepare( &quot;INSERT INTO {$wpdb-&gt;blogs} (site_id, domain, path) VALUES (%s, %s, %s)&quot;, $network_id, $domain, $path ) );
+                update_usermeta( $site_user-&gt;ID, 'source_domain', $domain );
+                update_usermeta( $site_user-&gt;ID, 'primary_blog', 1 );
+        }
+
+        if( $vhost == 'yes' ) {
+                update_option( 'permalink_structure', '/%year%/%monthnum%/%day%/%postname%/');
+        } else {
+                update_option( 'permalink_structure', '/blog/%year%/%monthnum%/%day%/%postname%/');
+        }
+        $wp_rewrite-&gt;flush_rules();
+
+        if ( $vhost == 'yes' ) {
+                $vhost_ok = false;
+                $hostname = substr( md5( time() ), 0, 6 ) . '.' . $domain; // Very random hostname!
+                $page = wp_remote_get( 'http://' . $hostname, array( 'timeout' =&gt; 5, 'httpversion' =&gt; '1.1' ) );
+                if( is_object( $page ) &amp;&amp; is_wp_error( $page ) ) {
+                        foreach ( $page-&gt;get_error_messages() as $err )
+                                $errstr = $err;
+                } elseif( $page[ 'response' ][ 'code' ] == 200 ) {
+                                $vhost_ok = true;
+                }
+                if( !$vhost_ok ) {
+                        $msg = &quot;&lt;h2&gt;Warning! Wildcard DNS may not be configured correctly!&lt;/h2&gt;&quot;;
+                        $msg .= &quot;&lt;p&gt;To use the subdomain feature of WordPress MU you must have a wildcard entry in your dns. The installer attempted to contact a random hostname ($hostname) on your domain but failed. It returned this error message:&lt;br /&gt; &lt;strong&gt;$errstr&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;From the README.txt:&lt;/p&gt;&quot;;
+                        $msg .= &quot;&lt;p&gt;&lt;blockquote&gt; If you want to host blogs of the form http://blog.domain.tld/ where domain.tld is the domain name of your machine then you must add a wildcard record to your DNS records.&lt;br /&gt;
+This usually means adding a '*' hostname record pointing at your webserver in your DNS configuration tool.  Matt has a more detailed &lt;a href='http://ma.tt/2003/10/10/wildcard-dns-and-sub-domains/'&gt;explanation&lt;/a&gt; on his blog. If you still have problems, these &lt;a href='http://mu.wordpress.org/forums/tags/wildcard'&gt;forum messages&lt;/a&gt; may help.&lt;/blockquote&gt;&lt;/p&gt;&quot;;
+                        $msg .= &quot;&lt;p&gt;You can still use your site but any subdomain you create may not be accessible. This check is not foolproof so ignore if you know your dns is correct.&lt;/p&gt;&quot;;
+                }
+        }
+        return $msg;
+}
</ins><span class="cx"> ?&gt;
</span></span></pre></div>
<a id="trunkwpadminincludesupgradephp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/upgrade.php (12755 => 12756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/upgrade.php        2010-01-18 23:34:36 UTC (rev 12755)
+++ trunk/wp-admin/includes/upgrade.php        2010-01-19 00:04:25 UTC (rev 12756)
</span><span class="lines">@@ -1713,4 +1713,108 @@
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+/**
+ * Install Network.
+ *
+ * @since 3.0
+ *
+ */
+if ( !function_exists( 'install_network' ) ) :
+function install_network() {
+        global $wpdb, $charset_collate;
+        $ms_queries = &quot;
+CREATE TABLE $wpdb-&gt;users (
+  ID bigint(20) unsigned NOT NULL auto_increment,
+  user_login varchar(60) NOT NULL default '',
+  user_pass varchar(64) NOT NULL default '',
+  user_nicename varchar(50) NOT NULL default '',
+  user_email varchar(100) NOT NULL default '',
+  user_url varchar(100) NOT NULL default '',
+  user_registered datetime NOT NULL default '0000-00-00 00:00:00',
+  user_activation_key varchar(60) NOT NULL default '',
+  user_status int(11) NOT NULL default '0',
+  display_name varchar(250) NOT NULL default '',
+  spam tinyint(2) NOT NULL default '0',
+  deleted tinyint(2) NOT NULL default '0',
+  PRIMARY KEY  (ID),
+  KEY user_login_key (user_login),
+  KEY user_nicename (user_nicename)
+) $charset_collate;
+CREATE TABLE $wpdb-&gt;blogs (
+  blog_id bigint(20) NOT NULL auto_increment,
+  site_id bigint(20) NOT NULL default '0',
+  domain varchar(200) NOT NULL default '',
+  path varchar(100) NOT NULL default '',
+  registered datetime NOT NULL default '0000-00-00 00:00:00',
+  last_updated datetime NOT NULL default '0000-00-00 00:00:00',
+  public tinyint(2) NOT NULL default '1',
+  archived enum('0','1') NOT NULL default '0',
+  mature tinyint(2) NOT NULL default '0',
+  spam tinyint(2) NOT NULL default '0',
+  deleted tinyint(2) NOT NULL default '0',
+  lang_id int(11) NOT NULL default '0',
+  PRIMARY KEY  (blog_id),
+  KEY domain (domain(50),path(5)),
+  KEY lang_id (lang_id)
+) $charset_collate;
+CREATE TABLE $wpdb-&gt;blog_versions (
+  blog_id bigint(20) NOT NULL default '0',
+  db_version varchar(20) NOT NULL default '',
+  last_updated datetime NOT NULL default '0000-00-00 00:00:00',
+  PRIMARY KEY  (blog_id),
+  KEY db_version (db_version)
+) $charset_collate;
+CREATE TABLE $wpdb-&gt;registration_log (
+  ID bigint(20) NOT NULL auto_increment,
+  email varchar(255) NOT NULL default '',
+  IP varchar(30) NOT NULL default '',
+  blog_id bigint(20) NOT NULL default '0',
+  date_registered datetime NOT NULL default '0000-00-00 00:00:00',
+  PRIMARY KEY  (ID),
+  KEY IP (IP)
+) $charset_collate;
+CREATE TABLE $wpdb-&gt;site (
+  id bigint(20) NOT NULL auto_increment,
+  domain varchar(200) NOT NULL default '',
+  path varchar(100) NOT NULL default '',
+  PRIMARY KEY  (id),
+  KEY domain (domain,path)
+) $charset_collate;
+CREATE TABLE $wpdb-&gt;sitemeta (
+  meta_id bigint(20) NOT NULL auto_increment,
+  site_id bigint(20) NOT NULL default '0',
+  meta_key varchar(255) default NULL,
+  meta_value longtext,
+  PRIMARY KEY  (meta_id),
+  KEY meta_key (meta_key),
+  KEY site_id (site_id)
+) $charset_collate;
+CREATE TABLE $wpdb-&gt;sitecategories (
+  cat_ID bigint(20) NOT NULL auto_increment,
+  cat_name varchar(55) NOT NULL default '',
+  category_nicename varchar(200) NOT NULL default '',
+  last_updated timestamp NOT NULL,
+  PRIMARY KEY  (cat_ID),
+  KEY category_nicename (category_nicename),
+  KEY last_updated (last_updated)
+) $charset_collate;
+CREATE TABLE $wpdb-&gt;signups (
+  domain varchar(200) NOT NULL default '',
+  path varchar(100) NOT NULL default '',
+  title longtext NOT NULL,
+  user_login varchar(60) NOT NULL default '',
+  user_email varchar(100) NOT NULL default '',
+  registered datetime NOT NULL default '0000-00-00 00:00:00',
+  activated datetime NOT NULL default '0000-00-00 00:00:00',
+  active tinyint(1) NOT NULL default '0',
+  activation_key varchar(50) NOT NULL default '',
+  meta longtext,
+  KEY activation_key (activation_key),
+  KEY domain (domain)
+) $charset_collate;
+&quot;;
+// now create tables
+        dbDelta( $ms_queries );
+}
+endif;
</ins><span class="cx"> ?&gt;
</span></span></pre></div>
<a id="trunkwpadminincludeswpconfigms"></a>
<div class="addfile"><h4>Added: trunk/wp-admin/includes/wp-config.ms (0 => 12756)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/wp-config.ms                                (rev 0)
+++ trunk/wp-admin/includes/wp-config.ms        2010-01-19 00:04:25 UTC (rev 12756)
</span><span class="lines">@@ -0,0 +1,116 @@
</span><ins>+&lt;?php
+/** 
+ * The base configuration of WordPress.
+ *
+ * This file has the following configurations: MySQL settings, Table Prefix,
+ * Secret Keys, WordPress Language, and ABSPATH. You can find more information by
+ * visiting {@link http://codex.wordpress.org/Editing_wp-config.php Editing
+ * wp-config.php} Codex page. You can get the MySQL settings from your web host.
+ *
+ * This file is used by the wp-config.php creation script during the
+ * installation.
+ *
+ * @package WordPress
+ */
+
+// ** MySQL settings - You can get this info from your web host ** //
+/** The name of the database for WordPress */
+define('DB_NAME', 'wordpress');
+
+/** MySQL database username */
+define('DB_USER', 'username');
+
+/** MySQL database password */
+define('DB_PASSWORD', 'password');
+
+/** MySQL hostname */
+define('DB_HOST', 'localhost');
+
+/** Database Charset to use in creating database tables. */
+define('DB_CHARSET', 'utf8');
+
+/** The Database Collate type. Don't change this if in doubt. */
+define('DB_COLLATE', '');
+
+/** Network settings - added by the network settings installer */
+define('MULTISITE', true);
+define('VHOST', 'VHOSTSETTING'); 
+$base = 'BASE';
+define('DOMAIN_CURRENT_SITE', 'current_site_domain' );
+define('PATH_CURRENT_SITE', 'current_site_path' );
+define('SITE_ID_CURRENT_SITE', 1);
+define('BLOGID_CURRENT_SITE', '1' );
+
+/* Uncomment to allow blog admins to edit their users. See http://trac.mu.wordpress.org/ticket/1169 */
+//define( &quot;EDIT_ANY_USER&quot;, true );
+/* Uncomment to enable post by email options. See http://trac.mu.wordpress.org/ticket/1084 */
+//define( &quot;POST_BY_EMAIL&quot;, true );
+
+/**#@+
+ * Authentication Unique Keys.
+ *
+ * Change these to different unique phrases!
+ * You can generate these using the {@link http://api.wordpress.org/secret-key/1.1/wpmu/salt WordPress.org secret-key service}
+ * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
+ *
+ * @since 2.6.0
+ */
+define('AUTH_KEY', 'put your unique phrase here');
+define('SECURE_AUTH_KEY', 'put your unique phrase here');
+define('LOGGED_IN_KEY', 'put your unique phrase here');
+define('NONCE_KEY', 'put your unique phrase here');
+define('AUTH_SALT', 'put your unique phrase here');
+define('LOGGED_IN_SALT', 'put your unique phrase here');
+define('SECURE_AUTH_SALT', 'put your unique phrase here');
+/**#@-*/
+
+/**
+ * WordPress Database Table prefix.
+ *
+ * You can have multiple installations in one database if you give each a unique
+ * prefix. Only numbers, letters, and underscores please!
+ */
+$table_prefix  = 'wp_';
+
+/**
+ * WordPress Localized Language, defaults to English.
+ *
+ * Change this to localize WordPress.  A corresponding MO file for the chosen
+ * language must be installed to wp-content/languages. For example, install
+ * de.mo to wp-content/languages and set WPLANG to 'de' to enable German
+ * language support.
+ */
+define ('WPLANG', '');
+
+// double check $base
+if( $base == 'BASE' )
+        die( 'Problem in wp-config.php - $base is set to BASE when it should be the path like &quot;/&quot; or &quot;/blogs/&quot;! Please fix it!' );
+
+// uncomment this to enable WP_CONTENT_DIR/sunrise.php support
+//define( 'SUNRISE', 'on' );
+
+// uncomment to move wp-content/blogs.dir to another relative path
+// remember to change WP_CONTENT too.
+// define( &quot;UPLOADBLOGSDIR&quot;, &quot;fileserver&quot; );
+
+// If VHOST is 'yes' uncomment and set this to a URL to redirect if a blog does not exist or is a 404 on the main blog. (Useful if signup is disabled)
+// For example, the browser will redirect to http://examples.com/ for the following: define( 'NOBLOGREDIRECT', 'http://example.com/' );
+// Set this value to %siteurl% to redirect to the root of the site
+// define( 'NOBLOGREDIRECT', '' );
+// On a directory based install you must use the theme 404 handler.
+
+// Location of mu-plugins
+// define( 'WPMU_PLUGIN_DIR', '' );
+// define( 'WPMU_PLUGIN_URL', '' );
+// define( 'MUPLUGINDIR', 'wp-content/mu-plugins' );
+
+define( &quot;WP_USE_MULTIPLE_DB&quot;, false );
+
+/* That's all, stop editing! Happy blogging. */
+
+/** Absolute path to the WordPress directory. */
+if ( !defined('ABSPATH') )
+        define('ABSPATH', dirname(__FILE__) . '/');
+
+/** Sets up WordPress vars and included files. */
+require_once(ABSPATH . 'wp-settings.php');
</ins></span></pre>
</div>
</div>

</body>
</html>