Warning! Installing to http://localhost/ is not supported. Please use http://localhost.localdomain/ instead." );
}
define('WP_INSTALLING', true);
function printheader() {
?>
WordPress › Installation
FAILED
Quick Fix: chmod 777 $dir
";
return false;
} else {
if( $ret == true ) {
return true;
} else {
return false;
}
}
}
function filestats( $err ) {
print "Server Summary
";
print "If you post a message to the MU support forum at http://mu.wordpress.org/forums/ then copy and paste the following information into your message:
";
print "";
print "
ERROR: $err";
clearstatcache();
$files = array( "htaccess.dist", ".htaccess" );
while( list( $key, $val ) = each( $files ) ) {
$stats = @stat( $val );
if( $stats ) {
print "$val
";
print " uid/gid: " . $stats[ 'uid' ] . "/" . $stats[ 'gid' ] . "
\n";
print " size: " . $stats[ 'size' ] . "
";
print " perms: " . substr( sprintf('%o', fileperms( $val ) ), -4 ) . "
";
print " readable: ";
print is_readable( $val ) == true ? "yes" : "no";
print "
";
print " writeable: ";
print is_writeable( $val ) == true ? "yes" : "no";
print "
";
} elseif( file_exists( $val ) == false ) {
print "$val
";
print " FILE NOT FOUND: $val
";
}
}
print "
";
}
function do_htaccess( $oldfilename, $newfilename, $base, $url ) {
// remove ending slash from $base and $url
$htaccess = '';
if( substr($base, -1 ) == '/') {
$base = substr($base, 0, -1);
}
if( substr($url, -1 ) == '/') {
$url = substr($url, 0, -1);
}
$err = '';
if( is_file( $oldfilename ) ) {
$fp = @fopen( $oldfilename, "r" );
if( $fp ) {
while( !feof( $fp ) )
{
$htaccess .= fgets( $fp, 4096 );
}
fclose( $fp );
$htaccess = str_replace( "BASE", $base, $htaccess );
if( touch( $newfilename ) ) {
$fp = fopen( $newfilename, "w" );
if( $fp ) {
fwrite( $fp, $htaccess );
fclose( $fp );
} else {
$err = "could not open $newfilename for writing";
}
} else {
$err = "could not open $newfilename for writing";
}
} else {
$err = "could not open $oldfilename for reading";
}
} else {
$err = "$oldfilename not found";
}
if( $err != '' ) {
print "Warning!
";
print "There was a problem creating the .htaccess file.
";
print "Error: ";
if( $err == "could not open $newfilename for writing" ) {
print "Could Not Write To $newfilename.";
} elseif( $err == "could not open $oldfilename for reading" ) {
print "I could not read from $oldfilename. ";
} elseif( $err == "$oldfilename not found" ) {
print "The file, $oldfilename, is missing.";
}
print "
";
filestats( $err );
print "Please ensure that the webserver can write to this directory.
";
print "If you use Cpanel then read this post. Cpanel creates files that I need to overwrite and you have to fix that.
";
print "If all else fails then you'll have to create it by hand:";
print "
- Download htaccess.dist to your computer and open it in your favourite text editor.
- Replace the following text:
- BASE by '$base'
- HOST by '$url'
- Rename htaccess.dist to .htaccess and upload it back to the same directory.
";
die( "Installation Aborted!" );
}
}
function checkdirs() {
$ret = true;
$ret = check_writeable_dir( dirname(__FILE__), $ret );
$ret = check_writeable_dir( dirname(__FILE__) . "/wp-content/", $ret );
if( $ret == false ) {
print "Warning!
";
print "";
print "
One or more of the above directories must be made writeable by the webserver.
";
print "Please chmod 777 directory-name
or chown
that directory to the user the web server runs as (usually nobody, apache, or www-data)
";
print "Refresh this page when you're done!
";
print "
";
}
if( file_exists( "./.htaccess" ) && is_writeable( "./.htaccess" ) == false ) {
$ret = false;
print "Warning! .htaccess already exists.
";
print "";
print "
A file with the name '.htaccess' already exists in this directory and I cannot write to it. Please ftp to the server and delete this file from this directory!
";
print "Offending file: " . realpath( '.htaccess' ) . "
";
print "
";
}
return $ret;
}
function step1() {
print "Installing WPµ
";
$mod_rewrite_msg = "If the mod_rewrite
module is disabled ask your administrator to enable that module, or look at the Apache documentation or elsewhere for help setting it up.
";
if( function_exists( "apache_get_modules" ) ) {
$modules = apache_get_modules();
if( in_array( "mod_rewrite", $modules ) == false ) {
echo "Warning! It looks like mod_rewrite is not installed.
" . $mod_rewrite_msg;
}
} else {
?>Please make sure mod_rewrite
is installed as it will be activated at the end of this install.
$line) {
switch (trim( substr($line,0,16) )) {
case "define('DB_NAME'":
fwrite($handle, str_replace("wordpress", $dbname, $line));
break;
case "define('DB_USER'":
fwrite($handle, str_replace("'username'", "'$uname'", $line));
break;
case "define('DB_PASSW":
fwrite($handle, str_replace("'password'", "'$passwrd'", $line));
break;
case "define('DB_HOST'":
fwrite($handle, str_replace("localhost", $dbhost, $line));
break;
case "define('VHOST',":
fwrite($handle, str_replace("VHOSTSETTING", $vhost, $line));
break;
case '$table_prefix =':
fwrite($handle, str_replace('wp_', $prefix, $line));
break;
case '$base = \'BASE\';':
fwrite($handle, str_replace('BASE', $base, $line));
break;
default:
fwrite($handle, $line);
break;
}
}
fclose($handle);
chmod('wp-config.php', 0644);
print "DONE
";
define( 'VHOST', $vhost );
}
function step3() {
global $wpdb, $current_site;
$base = stripslashes( dirname( $_SERVER["SCRIPT_NAME"] ) );
if( $base != "/") {
$base .= "/";
}
$domain = $wpdb->escape( $_POST[ 'basedomain' ] );
if( substr( $domain, 0, 4 ) == 'www.' )
$domain = substr( $domain, 4 );
$email = $wpdb->escape( $_POST[ 'email' ] );
$weblog_title = $wpdb->escape( $_POST[ 'weblog_title' ] );
// set up site tables
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'admin_email', '".$email."')" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'admin_user_id', '1')" );
$wpdb->query( "INSERT INTO ".$wpdb->site." ( id, domain, path ) VALUES ( NULL, '$domain', '$base' )" );
$wpdb->query( "INSERT INTO " . $wpdb->sitecategories . " ( cat_ID, cat_name, category_nicename, last_updated ) VALUES (1, 'Uncategorized', 'uncategorized', NOW())" );
$wpdb->query( "INSERT INTO " . $wpdb->sitecategories . " ( cat_ID, cat_name, category_nicename, last_updated ) VALUES (2, 'Blogroll', 'blogroll', NOW())" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'upload_filetypes', 'jpg jpeg png gif mp3 mov avi wmv midi mid pdf' )" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'blog_upload_space', '10' )" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'fileupload_maxk', '1500' )" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'site_admins', '" . serialize( array( 'admin' ) ) . "' )" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'allowed_themes', '" . serialize( array( 'WordPress Classic', 'WordPress Default' ) ) . "' )" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'illegal_names', '" . serialize( array( "www", "web", "root", "admin", "main", "invite", "administrator" ) ) . "' )" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, '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 weblog.
Thanks!
--The Team @ SITE_NAME')" );
$wpdb->query( "INSERT INTO ".$wpdb->sitemeta." (meta_id, site_id, meta_key, meta_value) VALUES (NULL, 1, 'first_post', 'Welcome to SITE_NAME. This is your first post. Edit or delete it, then start blogging!' )" );
$pass = substr( md5( rand() ), 5, 12 );
$user_id = wpmu_create_user( 'admin', $pass, $email);
$current_site->domain = $domain;
$current_site->path = $base;
$current_site->site_name = ucfirst( $domain );
wpmu_create_blog( $domain, $base, $weblog_title, $user_id, array() );
update_blog_option( 1, 'template', 'home');
update_blog_option( 1, 'stylesheet', 'home');
update_blog_option( 1, 'permalink_structure', '/blog/%year%/%monthnum%/%day%/%postname%/');
update_blog_option( 1, 'rewrite_rules', '');
$msg = "Your new WPMU site has been created at\nhttp://{$domain}{$base}\n\nLogin details:\nUsername: admin\nPassword: $pass\nLogin: http://{$domain}{$base}wp-login.php\n";
wp_mail( $email, "Your new WPMU site is ready!", $msg, "From: wordpress@" . $_SERVER[ 'HTTP_HOST' ] );
print "Congrats! Your WPMU site has been set up and you have been sent details of your login and password in an email.
";
}
function nowww() {
$nowww = str_replace( 'www.', '', $_POST[ 'basedomain' ] );
?>
No-www
WordPress MU strips the string "www" from the URLs of sites using this software. It is still possible to visit your site using the "www" prefix with an address like but any links will not have the "www" prefix. They will instead point at .
The preferred method of hosting blogs is without the "www" prefix as it's more compact and simple.
You can still use "" and URLs like "www.blog1." to address your site and blogs after installation but internal links will use the format.
www. is depreciated has a lot more information on why 'www.' isn't needed any more.