, 2006 Rob Church # http://www.mediawiki.org/ # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # http://www.gnu.org/copyleft/gpl.html error_reporting( E_ALL ); header( "Content-type: text/html; charset=utf-8" ); @ini_set( "display_errors", true ); # In case of errors, let output be clean. $wgRequestTime = microtime( true ); # Attempt to set up the include path, to fix problems with relative includes $IP = dirname( dirname( __FILE__ ) ); define( 'MW_INSTALL_PATH', $IP ); # Define an entry point and include some files define( "MEDIAWIKI", true ); define( "MEDIAWIKI_INSTALL", true ); // Run version checks before including other files // so people don't see a scary parse error. require_once( "$IP/install-utils.inc" ); install_version_checks(); require_once( "$IP/includes/Defines.php" ); require_once( "$IP/includes/DefaultSettings.php" ); require_once( "$IP/includes/AutoLoader.php" ); require_once( "$IP/includes/MagicWord.php" ); require_once( "$IP/includes/Namespace.php" ); require_once( "$IP/includes/ProfilerStub.php" ); require_once( "$IP/includes/GlobalFunctions.php" ); require_once( "$IP/includes/Hooks.php" ); # If we get an exception, the user needs to know # all the details $wgShowExceptionDetails = true; ## Databases we support: $ourdb = array(); $ourdb['mysql']['fullname'] = 'MySQL'; $ourdb['mysql']['havedriver'] = 0; $ourdb['mysql']['compile'] = 'mysql'; $ourdb['mysql']['bgcolor'] = '#ffe5a7'; $ourdb['mysql']['rootuser'] = 'root'; $ourdb['postgres']['fullname'] = 'PostgreSQL'; $ourdb['postgres']['havedriver'] = 0; $ourdb['postgres']['compile'] = 'pgsql'; $ourdb['postgres']['bgcolor'] = '#aaccff'; $ourdb['postgres']['rootuser'] = 'postgres'; ?> MediaWiki <?php echo( $wgVersion ); ?> Installation

MediaWiki Installation

Setup has completed, your wiki is configured.

Please delete the /config directory for extra security.

" ); } if( file_exists( "./LocalSettings.php" ) ) { writeSuccessMessage(); dieout( '' ); } if( !is_writable( "." ) ) { dieout( "

Can't write config file, aborting

In order to configure the wiki you have to make the config subdirectory writable by the web server. Once configuration is done you'll move the created LocalSettings.php to the parent directory, and for added safety you can then remove the config subdirectory entirely.

To make the directory writable on a Unix/Linux system:

	cd /path/to/wiki
	chmod a+w config
	

Afterwards retry to start the setup.

" ); } require_once( "$IP/install-utils.inc" ); require_once( "$IP/maintenance/updaters.inc" ); class ConfigData { function getEncoded( $data ) { # removing latin1 support, no need... return $data; } function getSitename() { return $this->getEncoded( $this->Sitename ); } function getSysopName() { return $this->getEncoded( $this->SysopName ); } function getSysopPass() { return $this->getEncoded( $this->SysopPass ); } function setSchema( $schema, $engine ) { $this->DBschema = $schema; if ( !preg_match( '/^\w*$/', $engine ) ){ $engine = 'InnoDB'; } switch ( $this->DBschema ) { case 'mysql5': $this->DBTableOptions = "ENGINE=$engine, DEFAULT CHARSET=utf8"; $this->DBmysql5 = 'true'; break; case 'mysql5-binary': $this->DBTableOptions = "ENGINE=$engine, DEFAULT CHARSET=binary"; $this->DBmysql5 = 'true'; break; default: $this->DBTableOptions = "TYPE=$engine"; $this->DBmysql5 = 'false'; } $this->DBengine = $engine; # Set the global for use during install global $wgDBTableOptions; $wgDBTableOptions = $this->DBTableOptions; } } ?>

Checking environment...

Please include all of the lines below when reporting installation problems.

" ); } print "
  • Found database drivers for:"; $DefaultDBtype = ''; foreach (array_keys($ourdb) AS $db) { if ($ourdb[$db]['havedriver']) { if ( $DefaultDBtype == '' ) { $DefaultDBtype = $db; } print " ".$ourdb[$db]['fullname']; } } print "
  • \n"; if( wfIniGetBool( "register_globals" ) ) { ?>
  • Warning: PHP's register_globals option is enabled. Disable it if you can.
    MediaWiki will work, but your server is more exposed to PHP-based security vulnerabilities.
  • Fatal: magic_quotes_runtime is active! This option corrupts data input unpredictably; you cannot install or use MediaWiki unless this option is disabled.
  • Fatal: magic_quotes_sybase is active! This option corrupts data input unpredictably; you cannot install or use MediaWiki unless this option is disabled.
  • Fatal: mbstring.func_overload is active! This option causes errors and may corrupt data unpredictably; you cannot install or use MediaWiki unless this option is disabled.
  • Fatal: zend.ze1_compatibility_mode is active! This option causes horrible bugs with MediaWiki; you cannot install or use MediaWiki unless this option is disabled.

    Cannot install MediaWiki.

    " ); } if( wfIniGetBool( "safe_mode" ) ) { $conf->safeMode = true; ?>
  • Warning: PHP's safe mode is active. You may have problems caused by this, particularly if using image uploads.
  • safeMode = false; } $sapi = php_sapi_name(); print "
  • PHP server API is $sapi; "; $script = defined('MW_INSTALL_PHP5_EXT') ? 'index.php5' : 'index.php'; if( $wgUsePathInfo ) { print "ok, using pretty URLs ($script/Page_Title)"; } else { print "using ugly URLs ($script?title=Page_Title)"; } print "
  • \n"; $conf->xml = function_exists( "utf8_encode" ); if( $conf->xml ) { print "
  • Have XML / Latin1-UTF-8 conversion support.
  • \n"; } else { dieout( "PHP's XML module is missing; the wiki requires functions in this module and won't work in this configuration. If you're running Mandrake, install the php-xml package." ); } # Check for session support if( !function_exists( 'session_name' ) ) dieout( "PHP's session module is missing. MediaWiki requires session support in order to function." ); # session.save_path doesn't *have* to be set, but if it is, and it's # not valid/writable/etc. then it can cause problems $sessionSavePath = mw_get_session_save_path(); $ssp = htmlspecialchars( $sessionSavePath ); # Warn the user if it's not set, but let them proceed if( !$sessionSavePath ) { print "
  • Warning: A value for session.save_path has not been set in PHP.ini. If the default value causes problems with saving session data, set it to a valid path which is read/write/execute for the user your web server is running under.
  • "; } elseif ( is_dir( $sessionSavePath ) && is_writable( $sessionSavePath ) ) { # All good? Let the user know print "
  • Session save path ({$ssp}) appears to be valid.
  • "; } else { # Something not right? Warn the user, but let them proceed print "
  • Warning: Your session.save_path value ({$ssp}) appears to be invalid or is not writable. PHP needs to be able to save data to this location for correct session operation.
  • "; } # Check for PCRE support if( !function_exists( 'preg_match' ) ) dieout( "The PCRE support module appears to be missing. MediaWiki requires the Perl-compatible regular expression functions." ); $memlimit = ini_get( "memory_limit" ); $conf->raiseMemory = false; if( empty( $memlimit ) || $memlimit == -1 ) { print "
  • PHP is configured with no memory_limit.
  • \n"; } else { print "
  • PHP's memory_limit is " . htmlspecialchars( $memlimit ) . ". "; $n = intval( $memlimit ); if( preg_match( '/^([0-9]+)[Mm]$/', trim( $memlimit ), $m ) ) { $n = intval( $m[1] * (1024*1024) ); } if( $n < 20*1024*1024 ) { print "Attempting to raise limit to 20M... "; if( false === ini_set( "memory_limit", "20M" ) ) { print "failed.
    " . htmlspecialchars( $memlimit ) . " seems too low, installation may fail!"; } else { $conf->raiseMemory = true; print "ok."; } } print "
  • \n"; } $conf->turck = function_exists( 'mmcache_get' ); if ( $conf->turck ) { print "
  • Turck MMCache installed
  • \n"; } $conf->xcache = function_exists( 'xcache_get' ); if( $conf->xcache ) print "
  • XCache installed
  • "; $conf->apc = function_exists('apc_fetch'); if ($conf->apc ) { print "
  • APC installed
  • "; } $conf->eaccel = function_exists( 'eaccelerator_get' ); if ( $conf->eaccel ) { $conf->turck = 'eaccelerator'; print "
  • eAccelerator installed
  • \n"; } $conf->dba = function_exists( 'dba_open' ); if( !( $conf->turck || $conf->eaccel || $conf->apc || $conf->xcache ) ) { echo( '
  • Couldn\'t find Turck MMCache, eAccelerator, APC or XCache; cannot use these for object caching.
  • ' ); } $conf->diff3 = false; $diff3locations = array_merge( array( "/usr/bin", "/usr/local/bin", "/opt/csw/bin", "/usr/gnu/bin", "/usr/sfw/bin" ), explode( PATH_SEPARATOR, getenv( "PATH" ) ) ); $diff3names = array( "gdiff3", "diff3", "diff3.exe" ); $diff3versioninfo = array( '$1 --version 2>&1', 'diff3 (GNU diffutils)' ); foreach ($diff3locations as $loc) { $exe = locate_executable($loc, $diff3names, $diff3versioninfo); if ($exe !== false) { $conf->diff3 = $exe; break; } } if ($conf->diff3) print "
  • Found GNU diff3: $conf->diff3.
  • "; else print "
  • GNU diff3 not found.
  • "; $conf->ImageMagick = false; $imcheck = array( "/usr/bin", "/opt/csw/bin", "/usr/local/bin", "/sw/bin", "/opt/local/bin" ); foreach( $imcheck as $dir ) { $im = "$dir/convert"; if( @file_exists( $im ) ) { print "
  • Found ImageMagick: $im; image thumbnailing will be enabled if you enable uploads.
  • \n"; $conf->ImageMagick = $im; break; } } $conf->HaveGD = function_exists( "imagejpeg" ); if( $conf->HaveGD ) { print "
  • Found GD graphics library built-in"; if( !$conf->ImageMagick ) { print ", image thumbnailing will be enabled if you enable uploads"; } print ".
  • \n"; } else { if( !$conf->ImageMagick ) { print "
  • Couldn't find GD library or ImageMagick; image thumbnailing disabled.
  • \n"; } } $conf->IP = dirname( dirname( __FILE__ ) ); print "
  • Installation directory: " . htmlspecialchars( $conf->IP ) . "
  • \n"; // PHP_SELF isn't available sometimes, such as when PHP is CGI but // cgi.fix_pathinfo is disabled. In that case, fall back to SCRIPT_NAME // to get the path to the current script... hopefully it's reliable. SIGH $path = ($_SERVER["PHP_SELF"] === '') ? $_SERVER["SCRIPT_NAME"] : $_SERVER["PHP_SELF"]; $conf->ScriptPath = preg_replace( '{^(.*)/config.*$}', '$1', $path ); print "
  • Script URI path: " . htmlspecialchars( $conf->ScriptPath ) . "
  • \n"; // We may be installing from *.php5 extension file, if so, print message $conf->ScriptExtension = '.php'; if (defined('MW_INSTALL_PHP5_EXT')) { $conf->ScriptExtension = '.php5'; print "
  • Installing MediaWiki with php5 file extensions
  • \n"; } else { print "
  • Installing MediaWiki with php file extensions
  • \n"; } print "
  • Environment checked. You can install MediaWiki.
  • \n"; $conf->posted = ($_SERVER["REQUEST_METHOD"] == "POST"); $conf->Sitename = ucfirst( importPost( "Sitename", "" ) ); $defaultEmail = empty( $_SERVER["SERVER_ADMIN"] ) ? 'root@localhost' : $_SERVER["SERVER_ADMIN"]; $conf->EmergencyContact = importPost( "EmergencyContact", $defaultEmail ); $conf->DBtype = importPost( "DBtype", $DefaultDBtype ); ?> DBserver = importPost( "DBserver", "localhost" ); $conf->DBname = importPost( "DBname", "wikidb" ); $conf->DBuser = importPost( "DBuser", "wikiuser" ); $conf->DBpassword = importPost( "DBpassword" ); $conf->DBpassword2 = importPost( "DBpassword2" ); $conf->SysopName = importPost( "SysopName", "WikiSysop" ); $conf->SysopPass = importPost( "SysopPass" ); $conf->SysopPass2 = importPost( "SysopPass2" ); $conf->RootUser = importPost( "RootUser", "root" ); $conf->RootPW = importPost( "RootPW", "" ); $useRoot = importCheck( 'useroot', false ); $conf->LanguageCode = importPost( "LanguageCode", "en" ); ## MySQL specific: $conf->DBprefix = importPost( "DBprefix" ); $conf->setSchema( importPost( "DBschema", "mysql4" ), importPost( "DBengine", "InnoDB" ) ); ## Postgres specific: $conf->DBport = importPost( "DBport", "5432" ); $conf->DBmwschema = importPost( "DBmwschema", "mediawiki" ); $conf->DBts2schema = importPost( "DBts2schema", "public" ); /* Check for validity */ $errs = array(); if( preg_match( '/^$|^mediawiki$|#/i', $conf->Sitename ) ) { $errs["Sitename"] = "Must not be blank or \"MediaWiki\" and may not contain \"#\""; } if( $conf->DBuser == "" ) { $errs["DBuser"] = "Must not be blank"; } if( ($conf->DBtype == 'mysql') && (strlen($conf->DBuser) > 16) ) { $errs["DBuser"] = "Username too long"; } if( $conf->DBpassword == "" && $conf->DBtype != "postgres" ) { $errs["DBpassword"] = "Must not be blank"; } if( $conf->DBpassword != $conf->DBpassword2 ) { $errs["DBpassword2"] = "Passwords don't match!"; } if( !preg_match( '/^[A-Za-z_0-9]*$/', $conf->DBprefix ) ) { $errs["DBprefix"] = "Invalid table prefix"; } error_reporting( E_ALL ); /** * Initialise $wgLang and $wgContLang to something so we can * call case-folding methods. Per Brion, this is English for * now, although we could be clever and initialise to the * user-selected language. */ $wgContLang = Language::factory( 'en' ); $wgLang = $wgContLang; /** * We're messing about with users, so we need a stub * authentication plugin... */ $wgAuth = new AuthPlugin(); /** * Validate the initial administrator account; username, * password checks, etc. */ if( $conf->SysopName ) { # Check that the user can be created $u = User::newFromName( $conf->SysopName ); if( is_a($u, 'User') ) { // please do not use instanceof, it breaks PHP4 # Various password checks if( $conf->SysopPass != '' ) { if( $conf->SysopPass == $conf->SysopPass2 ) { if( !$u->isValidPassword( $conf->SysopPass ) ) { $errs['SysopPass'] = "Bad password"; } } else { $errs['SysopPass2'] = "Passwords don't match"; } } else { $errs['SysopPass'] = "Cannot be blank"; } unset( $u ); } else { $errs['SysopName'] = "Bad username"; } } $conf->License = importRequest( "License", "none" ); if( $conf->License == "gfdl" ) { $conf->RightsUrl = "http://www.gnu.org/copyleft/fdl.html"; $conf->RightsText = "GNU Free Documentation License 1.2"; $conf->RightsCode = "gfdl"; $conf->RightsIcon = '${wgScriptPath}/skins/common/images/gnu-fdl.png'; } elseif( $conf->License == "none" ) { $conf->RightsUrl = $conf->RightsText = $conf->RightsCode = $conf->RightsIcon = ""; } else { $conf->RightsUrl = importRequest( "RightsUrl", "" ); $conf->RightsText = importRequest( "RightsText", "" ); $conf->RightsCode = importRequest( "RightsCode", "" ); $conf->RightsIcon = importRequest( "RightsIcon", "" ); } $conf->Shm = importRequest( "Shm", "none" ); $conf->MCServers = importRequest( "MCServers" ); /* Test memcached servers */ if ( $conf->Shm == 'memcached' && $conf->MCServers ) { $conf->MCServerArray = array_map( 'trim', explode( ',', $conf->MCServers ) ); foreach ( $conf->MCServerArray as $server ) { $error = testMemcachedServer( $server ); if ( $error ) { $errs["MCServers"] = $error; break; } } } else if ( $conf->Shm == 'memcached' ) { $errs["MCServers"] = "Please specify at least one server if you wish to use memcached"; } /* default values for installation */ $conf->Email = importRequest("Email", "email_enabled"); $conf->Emailuser = importRequest("Emailuser", "emailuser_enabled"); $conf->Enotif = importRequest("Enotif", "enotif_allpages"); $conf->Eauthent = importRequest("Eauthent", "eauthent_enabled"); if( $conf->posted && ( 0 == count( $errs ) ) ) { do { /* So we can 'continue' to end prematurely */ $conf->Root = ($conf->RootPW != ""); /* Load up the settings and get installin' */ $local = writeLocalSettings( $conf ); echo "
  • \n"; echo "

    Generating configuration file...

    \n"; echo "
  • \n"; $wgCommandLineMode = false; chdir( ".." ); $ok = eval( $local ); if( $ok === false ) { dieout( "Errors in generated configuration; " . "most likely due to a bug in the installer... " . "Config file was: " . "
    " .
    				htmlspecialchars( $local ) .
    				"
    " . "" ); } $conf->DBtypename = ''; foreach (array_keys($ourdb) as $db) { if ($conf->DBtype === $db) $conf->DBtypename = $ourdb[$db]['fullname']; } if ( ! strlen($conf->DBtype)) { $errs["DBpicktype"] = "Please choose a database type"; continue; } if (! $conf->DBtypename) { $errs["DBtype"] = "Unknown database type '$conf->DBtype'"; continue; } print "
  • Database type: {$conf->DBtypename}
  • \n"; $dbclass = 'Database'.ucfirst($conf->DBtype); $wgDBtype = $conf->DBtype; $wgDBadminuser = "root"; $wgDBadminpassword = $conf->RootPW; ## Mysql specific: $wgDBprefix = $conf->DBprefix; ## Postgres specific: $wgDBport = $conf->DBport; $wgDBmwschema = $conf->DBmwschema; $wgDBts2schema = $conf->DBts2schema; $wgCommandLineMode = true; if (! defined ( 'STDERR' ) ) define( 'STDERR', fopen("php://stderr", "wb")); $wgUseDatabaseMessages = false; /* FIXME: For database failure */ require_once( "$IP/includes/Setup.php" ); chdir( "config" ); $wgTitle = Title::newFromText( "Installation script" ); error_reporting( E_ALL ); print "
  • Loading class: $dbclass"; $dbc = new $dbclass; if( $conf->DBtype == 'mysql' ) { $mysqlOldClient = version_compare( mysql_get_client_info(), "4.1.0", "lt" ); if( $mysqlOldClient ) { print "
  • PHP is linked with old MySQL client libraries. If you are using a MySQL 4.1 server and have problems connecting to the database, see http://dev.mysql.com/doc/mysql/en/old-client.html for help.
  • \n"; } $ok = true; # Let's be optimistic # Decide if we're going to use the superuser or the regular database user $conf->Root = $useRoot; if( $conf->Root ) { $db_user = $conf->RootUser; $db_pass = $conf->RootPW; } else { $db_user = $wgDBuser; $db_pass = $wgDBpassword; } # Attempt to connect echo( "
  • Attempting to connect to database server as $db_user..." ); $wgDatabase = Database::newFromParams( $wgDBserver, $db_user, $db_pass, '', 1 ); # Check the connection and respond to errors if( $wgDatabase->isOpen() ) { # Seems OK $ok = true; $wgDBadminuser = $db_user; $wgDBadminpassword = $db_pass; echo( "success.
  • \n" ); $wgDatabase->ignoreErrors( true ); $myver = $wgDatabase->getServerVersion(); } else { # There were errors, report them and back out $ok = false; $errno = mysql_errno(); $errtx = htmlspecialchars( mysql_error() ); switch( $errno ) { case 1045: case 2000: echo( "failed due to authentication errors. Check passwords." ); if( $conf->Root ) { # The superuser details are wrong $errs["RootUser"] = "Check username"; $errs["RootPW"] = "and password"; } else { # The regular user details are wrong $errs["DBuser"] = "Check username"; $errs["DBpassword"] = "and password"; } break; case 2002: case 2003: default: # General connection problem echo( "failed with error [$errno] $errtx.\n" ); $errs["DBserver"] = "Connection failed"; break; } # switch } #conn. att. if( !$ok ) { continue; } } else /* not mysql */ { error_reporting( E_ALL ); $wgSuperUser = ''; ## Possible connect as a superuser if( $useRoot ) { $wgDBsuperuser = $conf->RootUser; echo( "
  • Attempting to connect to database \"postgres\" as superuser \"$wgDBsuperuser\"..." ); $wgDatabase = $dbc->newFromParams($wgDBserver, $wgDBsuperuser, $conf->RootPW, "postgres", 1); if (!$wgDatabase->isOpen()) { print " error: " . $wgDatabase->lastError() . "
  • \n"; $errs["DBserver"] = "Could not connect to database as superuser"; $errs["RootUser"] = "Check username"; $errs["RootPW"] = "and password"; continue; } $wgDatabase->initial_setup($conf->RootPW, 'postgres'); } echo( "
  • Attempting to connect to database \"$wgDBname\" as \"$wgDBuser\"..." ); $wgDatabase = $dbc->newFromParams($wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, 1); if (!$wgDatabase->isOpen()) { print " error: " . $wgDatabase->lastError() . "
  • \n"; } else { $myver = $wgDatabase->getServerVersion(); } $wgDatabase->initial_setup('', $wgDBname); } if ( !$wgDatabase->isOpen() ) { $errs["DBserver"] = "Couldn't connect to database"; continue; } print "
  • Connected to $myver"; if ($conf->DBtype == 'mysql') { if( version_compare( $myver, "4.0.14" ) < 0 ) { dieout( " -- mysql 4.0.14 or later required. Aborting." ); } $mysqlNewAuth = version_compare( $myver, "4.1.0", "ge" ); if( $mysqlNewAuth && $mysqlOldClient ) { print "; You are using MySQL 4.1 server, but PHP is linked to old client libraries; if you have trouble with authentication, see http://dev.mysql.com/doc/mysql/en/old-client.html for help."; } if( $wgDBmysql5 ) { if( $mysqlNewAuth ) { print "; enabling MySQL 4.1/5.0 charset mode"; } else { print "; MySQL 4.1/5.0 charset mode enabled, but older version detected; will likely fail."; } } print "
  • \n"; @$sel = $wgDatabase->selectDB( $wgDBname ); if( $sel ) { print "
  • Database " . htmlspecialchars( $wgDBname ) . " exists
  • \n"; } else { $err = mysql_errno(); $databaseSafe = htmlspecialchars( $wgDBname ); if( $err == 1102 /* Invalid database name */ ) { print ""; continue; } elseif( $err != 1049 /* Database doesn't exist */ ) { print ""; continue; } print "
  • Attempting to create database...
  • "; $res = $wgDatabase->query( "CREATE DATABASE `$wgDBname`" ); if( !$res ) { print "
  • Couldn't create database " . htmlspecialchars( $wgDBname ) . "; try with root access or check your username/pass.
  • \n"; $errs["RootPW"] = "<- Enter"; continue; } print "
  • Created database " . htmlspecialchars( $wgDBname ) . "
  • \n"; } $wgDatabase->selectDB( $wgDBname ); } else if ($conf->DBtype == 'postgres') { if( version_compare( $myver, "PostgreSQL 8.0" ) < 0 ) { dieout( " Postgres 8.0 or later is required. Aborting." ); } } if( $wgDatabase->tableExists( "cur" ) || $wgDatabase->tableExists( "revision" ) ) { print "
  • There are already MediaWiki tables in this database. Checking if updates are needed...
  • \n"; if ( $conf->DBtype == 'mysql') { # Determine existing default character set if ( $wgDatabase->tableExists( "revision" ) ) { $revision = $wgDatabase->escapeLike( $conf->DBprefix . 'revision' ); $res = $wgDatabase->query( "SHOW TABLE STATUS LIKE '$revision'" ); $row = $wgDatabase->fetchObject( $res ); if ( !$row ) { echo "
  • SHOW TABLE STATUS query failed!
  • \n"; $existingSchema = false; $existingEngine = false; } else { if ( preg_match( '/^latin1/', $row->Collation ) ) { $existingSchema = 'mysql4'; } elseif ( preg_match( '/^utf8/', $row->Collation ) ) { $existingSchema = 'mysql5'; } elseif ( preg_match( '/^binary/', $row->Collation ) ) { $existingSchema = 'mysql5-binary'; } else { $existingSchema = false; echo "
  • Warning: Unrecognised existing collation
  • \n"; } if ( isset( $row->Engine ) ) { $existingEngine = $row->Engine; } else { $existingEngine = $row->Type; } } if ( $existingSchema && $existingSchema != $conf->DBschema ) { print "
  • Warning: you requested the {$conf->DBschema} schema, " . "but the existing database has the $existingSchema schema. This upgrade script ". "can't convert it, so it will remain $existingSchema.
  • \n"; $conf->setSchema( $existingSchema, $conf->DBengine ); } if ( $existingEngine && $existingEngine != $conf->DBengine ) { print "
  • Warning: you requested the {$conf->DBengine} storage " . "engine, but the existing database uses the $existingEngine engine. This upgrade " . "script can't convert it, so it will remain $existingEngine.
  • \n"; $conf->setSchema( $conf->DBschema, $existingEngine ); } } # Create user if required if ( $conf->Root ) { $conn = $dbc->newFromParams( $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, 1 ); if ( $conn->isOpen() ) { print "
  • DB user account ok
  • \n"; $conn->close(); } else { print "
  • Granting user permissions..."; if( $mysqlOldClient && $mysqlNewAuth ) { print " If the next step fails, see http://dev.mysql.com/doc/mysql/en/old-client.html for help."; } print "
  • \n"; dbsource( "../maintenance/users.sql", $wgDatabase ); } } } print "
    \n";
    			chdir( ".." );
    			flush();
    			do_all_updates();
    			chdir( "config" );
    			print "
    \n"; print "
    \n"; writeSuccessMessage(); } else { fclose( $f ); die("

    An error occured while writing the config/LocalSettings.php file. Check user rights and disk space then try again.

    \n"); print "\n"; } } while( false ); } ?> posted ) { echo "

    Something's not quite right yet; make sure everything below is filled out correctly.

    \n"; } ?>

    Site config

    Preferably a short word without punctuation, i.e. "Wikipedia".
    Will appear as the namespace name for "meta" pages, and throughout the interface.

    Displayed to users in some error messages, used as the return address for password reminders, and used as the default sender address of e-mail notifications.

    Select the language for your wiki's interface. Some localizations aren't fully complete. Unicode (UTF-8) is used for all localizations.

    • ScriptPath}/config/$script?License=cc&RightsUrl=[license_url]&RightsText=[license_name]&RightsCode=[license_code]&RightsIcon=[license_button]" ); $icon = urlencode( "$wgServer$wgUploadPath/wiki.png" ); $ccApp = htmlspecialchars( "http://creativecommons.org/license/?partner=$partner&exit_url=$exit&partner_icon_url=$icon" ); print "choose"; ?> License == "cc" ) { ?>
      • RightsIcon ) . "\" alt='(Creative Commons icon)' />", "hidden" ); ?>
      • RightsText ), "hidden" ); ?>
      • RightsCode ), "hidden" ); ?>
      • RightsUrl ) . "\">" . htmlspecialchars( $conf->RightsUrl ) . "", "hidden" ); ?>

    A notice, icon, and machine-readable copyright metadata will be displayed for the license you pick.

    An admin can lock/delete pages, block users from editing, and do other maintenance tasks.
    A new account will be added only when creating a new wiki database.

    The password cannot be the same as the username.

    • turck ) { echo "
    • "; aField( $conf, "Shm", "Turck MMCache", "radio", "turck" ); echo "
    • "; } if( $conf->xcache ) { echo( '
    • ' ); aField( $conf, 'Shm', 'XCache', 'radio', 'xcache' ); echo( '
    • ' ); } if ( $conf->apc ) { echo "
    • "; aField( $conf, "Shm", "APC", "radio", "apc" ); echo "
    • "; } if ( $conf->eaccel ) { echo "
    • "; aField( $conf, "Shm", "eAccelerator", "radio", "eaccel" ); echo "
    • "; } if ( $conf->dba ) { echo "
    • "; aField( $conf, "Shm", "DBA (not recommended)", "radio", "dba" ); echo "
    • "; } ?>

    An object caching system such as memcached will provide a significant performance boost, but needs to be installed. Provide the server addresses and ports in a comma-separated list.

    MediaWiki can also detect and support eAccelerator, Turck MMCache, APC, and XCache, but these should not be used if the wiki will be running on multiple application servers.

    DBA (Berkeley-style DB) is generally slower than using no cache at all, and is only recommended for testing.

    E-mail, e-mail notification and authentication setup

    Use this to disable all e-mail functions (password reminders, user-to-user e-mail, and e-mail notifications) if sending mail doesn't work on your server.

    The user-to-user e-mail feature (Special:Emailuser) lets the wiki act as a relay to allow users to exchange e-mail without publicly advertising their e-mail address.

    For this feature to work, an e-mail address must be present for the user account, and the notification options in the user's preferences must be enabled. Also note the authentication option below. When testing the feature, keep in mind that your own changes will never trigger notifications to be sent to yourself.

    There are additional options for fine tuning in /includes/DefaultSettings.php; copy these to your LocalSettings.php and edit them there to change them.

    If this option is enabled, users have to confirm their e-mail address using a magic link sent to them whenever they set or change it, and only authenticated e-mail addresses can receive mails from other users and/or change notification mails. Setting this option is recommended for public wikis because of potential abuse of the e-mail features above.

    Database config

    $errs[DBpicktype]\n"; ?>

    If your database server isn't on your web server, enter the name or IP address here.

    If you only have a single user account and database available, enter those here. If you have database root access (see below) you can specify new accounts/databases to be created. This account will not be created if it pre-exists. If this is the case, ensure that it has SELECT, INSERT, UPDATE, and DELETE permissions on the MediaWiki database.

    checked="checked" />  

    If the database user specified above does not exist, or does not have access to create the database (if needed) or tables within it, please check the box and provide details of a superuser account, such as root, which does.

    If you need to share one database between multiple wikis, or between MediaWiki and another web application, you may choose to add a prefix to all the table names to avoid conflicts.

    Avoid exotic characters; something like mw_ is good.

    Select one:

    InnoDB is best for public web installations, since it has good concurrency support. MyISAM may be faster in single-user installations. MyISAM databases tend to get corrupted more often than InnoDB databases.

    Select one:

    EXPERIMENTAL: You can enable explicit Unicode charset support for MySQL 4.1 and 5.0 servers. This is not well tested and may cause things to break. If upgrading an older installation, leave in backwards-compatible mode.

    The username specified above (at "DB username") will have its search path set to the above schemas, so it is recommended that you create a new user. The above schemas are generally correct: only change them if you are sure you need to.

    Installation successful!

    To complete the installation, please do the following:

    1. Download config/LocalSettings.php with your FTP client or file manager
    2. Upload it to the parent directory
    3. Delete config/LocalSettings.php
    4. Start using your wiki!

    If you are in a shared hosting environment, do not just move LocalSettings.php remotely. LocalSettings.php is currently owned by the user your webserver is running under, which means that anyone on the same server can read your database password! Downloading it and uploading it again will hopefully change the ownership to a user ID specific to you.

    EOT; } else { echo <<

    Installation successful! Move the config/LocalSettings.php file to the parent directory, then follow this link to your wiki.

    You should change file permissions for LocalSettings.php as required to prevent other users on the server reading passwords and altering configuration data.

    EOT; } } function escapePhpString( $string ) { if ( is_array( $string ) || is_object( $string ) ) { return false; } return strtr( $string, array( "\n" => "\\n", "\r" => "\\r", "\t" => "\\t", "\\" => "\\\\", "\$" => "\\\$", "\"" => "\\\"" )); } function writeLocalSettings( $conf ) { $conf->PasswordSender = $conf->EmergencyContact; $magic = ($conf->ImageMagick ? "" : "# "); $convert = ($conf->ImageMagick ? $conf->ImageMagick : "/usr/bin/convert" ); $rights = ($conf->RightsUrl) ? "" : "# "; $hashedUploads = $conf->safeMode ? '' : '# '; switch ( $conf->Shm ) { case 'memcached': $cacheType = 'CACHE_MEMCACHED'; $mcservers = var_export( $conf->MCServerArray, true ); break; case 'turck': case 'xcache': case 'apc': case 'eaccel': $cacheType = 'CACHE_ACCEL'; $mcservers = 'array()'; break; case 'dba': $cacheType = 'CACHE_DBA'; $mcservers = 'array()'; break; default: $cacheType = 'CACHE_NONE'; $mcservers = 'array()'; } if ( $conf->Email == 'email_enabled' ) { $enableemail = 'true'; $enableuseremail = ( $conf->Emailuser == 'emailuser_enabled' ) ? 'true' : 'false' ; $eauthent = ( $conf->Eauthent == 'eauthent_enabled' ) ? 'true' : 'false' ; switch ( $conf->Enotif ) { case 'enotif_usertalk': $enotifusertalk = 'true'; $enotifwatchlist = 'false'; break; case 'enotif_allpages': $enotifusertalk = 'true'; $enotifwatchlist = 'true'; break; default: $enotifusertalk = 'false'; $enotifwatchlist = 'false'; } } else { $enableuseremail = 'false'; $enableemail = 'false'; $eauthent = 'false'; $enotifusertalk = 'false'; $enotifwatchlist = 'false'; } $file = @fopen( "/dev/urandom", "r" ); if ( $file ) { $secretKey = bin2hex( fread( $file, 32 ) ); fclose( $file ); } else { $secretKey = ""; for ( $i=0; $i<8; $i++ ) { $secretKey .= dechex(mt_rand(0, 0x7fffffff)); } print "
  • Warning: \$wgSecretKey key is insecure, generated with mt_rand(). Consider changing it manually.
  • \n"; } # Add slashes to strings for double quoting $slconf = array_map( "escapePhpString", get_object_vars( $conf ) ); if( $conf->License == 'gfdl' ) { # Needs literal string interpolation for the current style path $slconf['RightsIcon'] = $conf->RightsIcon; } $localsettings = " # This file was automatically generated by the MediaWiki installer. # If you make manual changes, please keep track in case you need to # recreate them later. # # See includes/DefaultSettings.php for all configurable settings # and their default values, but don't forget to make changes in _this_ # file, not there. # If you customize your file layout, set \$IP to the directory that contains # the other MediaWiki files. It will be used as a base to locate files. if( defined( 'MW_INSTALL_PATH' ) ) { \$IP = MW_INSTALL_PATH; } else { \$IP = dirname( __FILE__ ); } \$path = array( \$IP, \"\$IP/includes\", \"\$IP/languages\" ); set_include_path( implode( PATH_SEPARATOR, \$path ) . PATH_SEPARATOR . get_include_path() ); require_once( \"\$IP/includes/DefaultSettings.php\" ); # If PHP's memory limit is very low, some operations may fail. " . ($conf->raiseMemory ? '' : '# ' ) . "ini_set( 'memory_limit', '20M' );" . " if ( \$wgCommandLineMode ) { if ( isset( \$_SERVER ) && array_key_exists( 'REQUEST_METHOD', \$_SERVER ) ) { die( \"This script must be run from the command line\\n\" ); } } ## Uncomment this to disable output compression # \$wgDisableOutputCompression = true; \$wgSitename = \"{$slconf['Sitename']}\"; ## The URL base path to the directory containing the wiki; ## defaults for all runtime URL paths are based off of this. \$wgScriptPath = \"{$slconf['ScriptPath']}\"; \$wgScriptExtension = \"{$slconf['ScriptExtension']}\"; ## For more information on customizing the URLs please see: ## http://www.mediawiki.org/wiki/Manual:Short_URL \$wgEnableEmail = $enableemail; \$wgEnableUserEmail = $enableuseremail; \$wgEmergencyContact = \"{$slconf['EmergencyContact']}\"; \$wgPasswordSender = \"{$slconf['PasswordSender']}\"; ## For a detailed description of the following switches see ## http://www.mediawiki.org/wiki/Extension:Email_notification ## and http://www.mediawiki.org/wiki/Extension:Email_notification ## There are many more options for fine tuning available see ## /includes/DefaultSettings.php ## UPO means: this is also a user preference option \$wgEnotifUserTalk = $enotifusertalk; # UPO \$wgEnotifWatchlist = $enotifwatchlist; # UPO \$wgEmailAuthentication = $eauthent; \$wgDBtype = \"{$slconf['DBtype']}\"; \$wgDBserver = \"{$slconf['DBserver']}\"; \$wgDBname = \"{$slconf['DBname']}\"; \$wgDBuser = \"{$slconf['DBuser']}\"; \$wgDBpassword = \"{$slconf['DBpassword']}\"; # MySQL specific settings \$wgDBprefix = \"{$slconf['DBprefix']}\"; # MySQL table options to use during installation or update \$wgDBTableOptions = \"{$slconf['DBTableOptions']}\"; # Experimental charset support for MySQL 4.1/5.0. \$wgDBmysql5 = {$conf->DBmysql5}; # Postgres specific settings \$wgDBport = \"{$slconf['DBport']}\"; \$wgDBmwschema = \"{$slconf['DBmwschema']}\"; \$wgDBts2schema = \"{$slconf['DBts2schema']}\"; ## Shared memory settings \$wgMainCacheType = $cacheType; \$wgMemCachedServers = $mcservers; ## To enable image uploads, make sure the 'images' directory ## is writable, then set this to true: \$wgEnableUploads = false; {$magic}\$wgUseImageMagick = true; {$magic}\$wgImageMagickConvertCommand = \"{$convert}\"; ## If you want to use image uploads under safe mode, ## create the directories images/archive, images/thumb and ## images/temp, and make them all writable. Then uncomment ## this, if it's not already uncommented: {$hashedUploads}\$wgHashedUploadDirectory = false; ## If you have the appropriate support software installed ## you can enable inline LaTeX equations: \$wgUseTeX = false; \$wgLocalInterwiki = \$wgSitename; \$wgLanguageCode = \"{$slconf['LanguageCode']}\"; \$wgProxyKey = \"$secretKey\"; ## Default skin: you can change the default skin. Use the internal symbolic ## names, ie 'standard', 'nostalgia', 'cologneblue', 'monobook': \$wgDefaultSkin = 'monobook'; ## For attaching licensing metadata to pages, and displaying an ## appropriate copyright notice / icon. GNU Free Documentation ## License and Creative Commons licenses are supported so far. {$rights}\$wgEnableCreativeCommonsRdf = true; \$wgRightsPage = \"\"; # Set to the title of a wiki page that describes your license/copyright \$wgRightsUrl = \"{$slconf['RightsUrl']}\"; \$wgRightsText = \"{$slconf['RightsText']}\"; \$wgRightsIcon = \"{$slconf['RightsIcon']}\"; # \$wgRightsCode = \"{$slconf['RightsCode']}\"; # Not yet used \$wgDiff3 = \"{$slconf['diff3']}\"; # When you make changes to this configuration file, this will make # sure that cached pages are cleared. \$wgCacheEpoch = max( \$wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) ); "; ## End of setting the $localsettings string // Keep things in Unix line endings internally; // the system will write out as local text type. return str_replace( "\r\n", "\n", $localsettings ); } function dieout( $text ) { die( $text . "\n\n\n" ); } function importVar( &$var, $name, $default = "" ) { if( isset( $var[$name] ) ) { $retval = $var[$name]; if ( get_magic_quotes_gpc() ) { $retval = stripslashes( $retval ); } } else { $retval = $default; } return $retval; } function importPost( $name, $default = "" ) { return importVar( $_POST, $name, $default ); } function importCheck( $name ) { return isset( $_POST[$name] ); } function importRequest( $name, $default = "" ) { return importVar( $_REQUEST, $name, $default ); } $radioCount = 0; function aField( &$conf, $field, $text, $type = "text", $value = "", $onclick = '' ) { global $radioCount; if( $type != "" ) { $xtype = "type=\"$type\""; } else { $xtype = ""; } $id = $field; $nolabel = ($type == "radio") || ($type == "hidden"); if ($type == 'radio') $id .= $radioCount++; if( $nolabel ) { echo "\t\t\n"; } global $errs; if(isset($errs[$field])) echo "" . $errs[$field] . "\n"; } function getLanguageList() { global $wgLanguageNames, $IP; if( !isset( $wgLanguageNames ) ) { require_once( "$IP/languages/Names.php" ); } $codes = array(); $d = opendir( "../languages/messages" ); /* In case we are called from the root directory */ if (!$d) $d = opendir( "languages/messages"); while( false !== ($f = readdir( $d ) ) ) { $m = array(); if( preg_match( '/Messages([A-Z][a-z_]+)\.php$/', $f, $m ) ) { $code = str_replace( '_', '-', strtolower( $m[1] ) ); if( isset( $wgLanguageNames[$code] ) ) { $name = $code . ' - ' . $wgLanguageNames[$code]; } else { $name = $code; } $codes[$code] = $name; } } closedir( $d ); ksort( $codes ); return $codes; } #Check for location of an executable # @param string $loc single location to check # @param array $names filenames to check for. # @param mixed $versioninfo array of details to use when checking version, use false for no version checking function locate_executable($loc, $names, $versioninfo = false) { if (!is_array($names)) $names = array($names); foreach ($names as $name) { $command = "$loc".DIRECTORY_SEPARATOR."$name"; if (@file_exists($command)) { if (!$versioninfo) return $command; $file = str_replace('$1', $command, $versioninfo[0]); if (strstr(`$file`, $versioninfo[1]) !== false) return $command; } } return false; } # Test a memcached server function testMemcachedServer( $server ) { $hostport = explode(":", $server); $errstr = false; $fp = false; if ( !function_exists( 'fsockopen' ) ) { $errstr = "Can't connect to memcached, fsockopen() not present"; } if ( !$errstr && count( $hostport ) != 2 ) { $errstr = 'Please specify host and port'; } if ( !$errstr ) { list( $host, $port ) = $hostport; $errno = 0; $fsockerr = ''; $fp = @fsockopen( $host, $port, $errno, $fsockerr, 1.0 ); if ( $fp === false ) { $errstr = "Cannot connect to memcached on $host:$port : $fsockerr"; } } if ( !$errstr ) { $command = "version\r\n"; $bytes = fwrite( $fp, $command ); if ( $bytes != strlen( $command ) ) { $errstr = "Cannot write to memcached socket on $host:$port"; } } if ( !$errstr ) { $expected = "VERSION "; $response = fread( $fp, strlen( $expected ) ); if ( $response != $expected ) { $errstr = "Didn't get correct memcached response from $host:$port"; } } if ( $fp ) { fclose( $fp ); } if ( !$errstr ) { echo "
  • Connected to memcached on $host:$port successfully"; } return $errstr; } function database_picker($conf) { global $ourdb; print "\n"; foreach(array_keys($ourdb) as $db) { if ($ourdb[$db]['havedriver']) { print "
  • "; aField( $conf, "DBtype", $ourdb[$db]['fullname'], 'radio', $db, 'onclick'); print "
  • \n"; } } print "\n"; } function database_switcher($db) { global $ourdb; $color = $ourdb[$db]['bgcolor']; $full = $ourdb[$db]['fullname']; print "
    $full specific options\n"; } function printListItem( $item ) { print "
  • $item
  • "; } ?>

    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or read it online

    _

    MediaWiki is Copyright © 2001-2008 by Magnus Manske, Brion Vibber, Lee Daniel Crocker, Tim Starling, Erik Möller, Gabriel Wicke and others.

    osceola county adminstrator florida osceola county adminstrator florida- pick lead block paint coronado lead block paint coronado- edge new york armory new york armory- success perry s restaurant houston perry s restaurant houston- product ohio concealed carry renewal ohio concealed carry renewal- soft helen dowsett helen dowsett- see clementines restaurant hudson clementines restaurant hudson- wild adriana zamora adriana zamora- middle cedar bay manteo cedar bay manteo- vowel railroad training center railroad training center- match history vassar college history vassar college- shall nicole barneveld nicole barneveld- joy louise ogden video louise ogden video- toward cloverleaf homes cartersville ga cloverleaf homes cartersville ga- boy calvin klein contradiction reviews calvin klein contradiction reviews- smile anderson industial engine anderson industial engine- scale plante moran mold 2007 plante moran mold 2007- rub west side owensboro west side owensboro- sudden bill mays products bill mays products- particular cedar bluffs nature preserve cedar bluffs nature preserve- this rock and roll invasion rock and roll invasion- turn chief yeoman t chief yeoman t- two clyde b morris clyde b morris- buy lewiston sun jounral lewiston sun jounral- brown johnnny wayne mitchell alabama johnnny wayne mitchell alabama- stand michael kirkam michael kirkam- rain employment agencies 91355 employment agencies 91355- market fairfax financial group fairfax financial group- second jeff bearor jeff bearor- catch lawrence thurston lawrence thurston- especially adam pitcher adam pitcher- winter orange tab flannel orange tab flannel- steel littleton co hockey tournament littleton co hockey tournament- road addictive gambling stories addictive gambling stories- duck rose kelly crowley rose kelly crowley- feed comstock fairfax virginia comstock fairfax virginia- region 110 wholesale ave huntsville 110 wholesale ave huntsville- wide coyote joe s toledo oh coyote joe s toledo oh- old coral calcium robert barefoot coral calcium robert barefoot- six garden plow for lawnmower garden plow for lawnmower- receive traffic columbus oh traffic columbus oh- cook psychiatric institute of maryland psychiatric institute of maryland- some belleville police kristina patterson belleville police kristina patterson- event michigan warner bra michigan warner bra- twenty paulding campus paulding campus- control indian currency lac indian currency lac- beat oak lane saugus ca oak lane saugus ca- often carbon fiber cloth 208 carbon fiber cloth 208- far parking in providence ri parking in providence ri- atom adoption lawyer chattanooga adoption lawyer chattanooga- in indianapolis housekeeping jobs indianapolis housekeeping jobs- black expert surgens black women expert surgens black women- street jessica simpson udo s jessica simpson udo s- go cresant park baptist church cresant park baptist church- feed healthy crockpot chicken curry healthy crockpot chicken curry- gather cast of five days cast of five days- east scarlet s retreat mcdonough scarlet s retreat mcdonough- modern buddy davis yachts buddy davis yachts- arrange sauer mountain friendship trail sauer mountain friendship trail- plane plain anton glenoak plain anton glenoak- especially vinson tank vinson tank- question sunshine house richmond virginia sunshine house richmond virginia- my dynamo swim and atlanta dynamo swim and atlanta- perhaps king jazz king jazz- coast stamford airborne london stamford airborne london- hard glastonbury public schools glastonbury public schools- off cordele ga phone book cordele ga phone book- note peter fonda movie 1067 peter fonda movie 1067- chair morse giesler callister llp morse giesler callister llp- settle cypress police department cypress police department- eye bend oregon swimming pool bend oregon swimming pool- bar sarasota castle hudson bayou sarasota castle hudson bayou- were jeff a frieden harvard jeff a frieden harvard- shop george miller attorney mi george miller attorney mi- triangle marjorie holmes today marjorie holmes today- grew david brock do david brock do- window springwater three bridges springwater three bridges- bell vineland nj founders day vineland nj founders day- swim mobile home tiedown machine mobile home tiedown machine- change printer queues printer queues- imagine coral beach club bermuda coral beach club bermuda- share marcona almond nougat marcona almond nougat- wood the indian removal policy the indian removal policy- enter ressler motors bozeman ressler motors bozeman- what springer nm hotels motels springer nm hotels motels- cook jana emmons ca jana emmons ca- paper haunted house supply haunted house supply- edge spiritual intelligence howard gardner spiritual intelligence howard gardner- stood lowest cash oil peekskill lowest cash oil peekskill- bear kingsmount park road toronto kingsmount park road toronto- sheet wild blue canaries michigan wild blue canaries michigan- name paul carrak paul carrak- meant hawaii inter island ferry hawaii inter island ferry- call livonia mi theatre livonia mi theatre- except westlake shoes westlake shoes- build dry ice appleton wi dry ice appleton wi- fish orlando based television evangelist orlando based television evangelist- art energy susidies egypt energy susidies egypt- lay king tutt ale king tutt ale- stead barry starr barry starr- multiply ed murdock ford ed murdock ford- by senniger powers attorneys senniger powers attorneys- produce regina ratley regina ratley- tell suggested college reading suggested college reading- molecule macys bill payment macys bill payment- shore derrick combs derrick combs- only noyse library kensington noyse library kensington- a 18 rock classics 18 rock classics- raise merrit island florida merrit island florida- meat yves trottier ontario yves trottier ontario- teeth vivian campbell hand problems vivian campbell hand problems- drive 4x8 diamond plate aluminum 4x8 diamond plate aluminum- still allison block mortgage broaker allison block mortgage broaker- told fergie beach bikini fergie beach bikini- wonder zeus delphi wooden wall zeus delphi wooden wall- nor felted collection sarah hatton felted collection sarah hatton- sand dallas cataract surgery dallas cataract surgery- believe joan osborn nj joan osborn nj- land camden new jersey newspaper camden new jersey newspaper- they marietta university ohio marietta university ohio- try rose construction kingsport tennessee rose construction kingsport tennessee- play richards christian academy georgia richards christian academy georgia- touch allen mairs wichita allen mairs wichita- page bd evacuated tubes supplies bd evacuated tubes supplies- row griffin engineers griffin engineers- then wedding planners wilmington nc wedding planners wilmington nc- represent canada homeless organization canada homeless organization- able jeep liberty vehicles jeep liberty vehicles- arrange allen say s biograph allen say s biograph- number michael iannarilli michael iannarilli- term cookware stafford texas cookware stafford texas- watch costales troy costales troy- fig falcon s middletown connecticut falcon s middletown connecticut- woman alex randy blue alex randy blue- got brushed aluminum diamond plates brushed aluminum diamond plates- column christian moreland christian moreland- plane procomm plus echo procomm plus echo- element jacobs staff jacobs staff- busy clark hoffer and berry clark hoffer and berry- grass samson s ridge hunting samson s ridge hunting- got weather in addis abba weather in addis abba- excite patriot cinema hanover ma patriot cinema hanover ma- feet all american softball sacramento all american softball sacramento- been atlanta to fort benning atlanta to fort benning- decimal mandi locke belfast maine mandi locke belfast maine- heat pokemon diamon versus pearl pokemon diamon versus pearl- key where is grace mission where is grace mission- degree topeka horse sales 2008 topeka horse sales 2008- broad meridian planes meridian planes- chord james street clinic mi james street clinic mi- present refurbished computers mesa az refurbished computers mesa az- value schein media kingston ny schein media kingston ny- section replacement floor register replacement floor register- step proline motorsports marine proline motorsports marine- evening apartment in waterbury ct apartment in waterbury ct- steam clipart posters on reading clipart posters on reading- soft johnny polson johnny polson- gather phoenix craige s list phoenix craige s list- sing martyn roberts f j martyn roberts f j- read borden taylor borden taylor- what private leisure centers private leisure centers- capital h m west hollywood h m west hollywood- though condiminiums monterey ca condiminiums monterey ca- hundred porn star named eva porn star named eva- oh inland energy inc inland energy inc- win richmond virginia catering richmond virginia catering- call phoenix craige s list phoenix craige s list- country sherman lake ymca sherman lake ymca- proper rosebud rsl au rosebud rsl au- week southern colonies occupations southern colonies occupations- rise welcome to precor usa welcome to precor usa- lot birdys indianapolis birdys indianapolis- forest bogan gates drive bogan gates drive- probable visitor parking bays visitor parking bays- dictionary yeshiva english department yeshiva english department- length watch beverly hills 90210 watch beverly hills 90210- port marvel vcd figures marvel vcd figures- copy heidi lindy salisbury heidi lindy salisbury- office trader vic s atlanta trader vic s atlanta- start a pictre of florida a pictre of florida- indicate parlier pronounced parlier pronounced- character light cupcake recipe light cupcake recipe- arrange dow and toll blending dow and toll blending- before bob seger home bob seger home- charge lakewood church bookstore houston lakewood church bookstore houston- best jobcentre coventry jobcentre coventry- appear skye putnam lyrics skye putnam lyrics- animal dance lessons fitchburg ma dance lessons fitchburg ma- be caravan power window caravan power window- govern gil mayo episodes gil mayo episodes- flat ghostbusters dream ghost belt ghostbusters dream ghost belt- food body hygiene coloring pages body hygiene coloring pages- lay mountain hardwear phantom jacket mountain hardwear phantom jacket- ago erie pa casinos erie pa casinos- locate shepherd electric supply raleigh shepherd electric supply raleigh- stand 33 dearborn chicago il 33 dearborn chicago il- represent canada enviormentaly concious town canada enviormentaly concious town- supply carter can application carter can application- repeat marriott parsippany marriott parsippany- animal red richards piano red richards piano- kept flyingsaucer nashville tennessee flyingsaucer nashville tennessee- board alicia miller loras college alicia miller loras college- though pitt titusville university pitt titusville university- our pnc bank pittsburg pa pnc bank pittsburg pa- mount murray goldsmith medation series murray goldsmith medation series- cell chad willis and lou chad willis and lou- cell festival siler city festival siler city- carry cameron mo barbara walker cameron mo barbara walker- answer camping harrington lake maine camping harrington lake maine- except exterminating raccoons exterminating raccoons- cry kelly gavin henneman kelly gavin henneman- desert galveston texas hotel escapes galveston texas hotel escapes- duck heath ledger party video heath ledger party video- buy hall outdoor adventures hall outdoor adventures- ear shannon farley shannon farley- to heidi spencer pratt song heidi spencer pratt song- trip vista font manager vista font manager- land white hawk ranch golf white hawk ranch golf- interest universal tv mount universal tv mount- written echo valley hot videos echo valley hot videos- poor mountains lake tahoe nevada mountains lake tahoe nevada- front new scotland hill school new scotland hill school- free doctor of osteopathy california doctor of osteopathy california- a official flower ontario canada official flower ontario canada- few class 3a green dot class 3a green dot- skill ohio state signet ring ohio state signet ring- decimal brandon lott california brandon lott california- as emachine computers and printer emachine computers and printer- forest brittany lynn phillips brittany lynn phillips- bring wesmar get home hydraulics wesmar get home hydraulics- clock reckless drivers reckless drivers- quiet xingu river basin management xingu river basin management- once michael bolton passion michael bolton passion- major north carolina standard inspection north carolina standard inspection- especially holidays march ireland holidays march ireland- slip bbw sarah bbw sarah- when heron essex heron essex- sea joy fm 97 7 joy fm 97 7- cloud march road antelope california march road antelope california- usual muskogee river valve muskogee river valve- camp captain lawrence baker captain lawrence baker- there english concertina music english concertina music- control boat river anchor boat river anchor- doctor scott s lawn guard scott s lawn guard- wire yale center bristish art yale center bristish art- poor copes vulcan inc copes vulcan inc- third willowbrook farms fayetteville tennessee willowbrook farms fayetteville tennessee- spend home remedy poision ivy home remedy poision ivy- complete shunt capacitor banks cooper shunt capacitor banks cooper- forest landscape lava rock landscape lava rock- cook home dvd outdoor projector home dvd outdoor projector- king renaissance homes portland oregon renaissance homes portland oregon- island verizon union strike 2000 verizon union strike 2000- come dalton leslie dalton leslie- remember trains warsaw to krakow trains warsaw to krakow- huge secrets resorts mexico secrets resorts mexico- sudden cimarron dulces cimarron dulces- roll ohio fire wood prices ohio fire wood prices- same linwood custom cedar homes linwood custom cedar homes- strange ama motercycle ama motercycle- mix bio identical progesterone cream canada bio identical progesterone cream canada- object ducks market henderson ducks market henderson- fear sims coaster theme parks sims coaster theme parks- show murders in pueblo murders in pueblo- fear new lenox state bank new lenox state bank- wrote christmas gift etiquette christmas gift etiquette- evening weiss lake water level weiss lake water level- show catus pete jackpot nv catus pete jackpot nv- cent gary m robb gary m robb- still central coast ranch stay central coast ranch stay- work maryland colonial government maryland colonial government- first henderson high kentucky henderson high kentucky- especially worst dressed oscar 2008 worst dressed oscar 2008- can fishing with chicken liver fishing with chicken liver- hope planetary geology masters canada planetary geology masters canada- began mosca chicken grande mix mosca chicken grande mix- six allen crouch and trainer allen crouch and trainer- connect newago michigan newago michigan- ocean robert loxley stubblefield robert loxley stubblefield- sugar sharepoint default publishing portal sharepoint default publishing portal- fresh hondo tx yellow pages hondo tx yellow pages- full brookdale shoprite bakery brookdale shoprite bakery- inch bethlehem pa recycling center bethlehem pa recycling center- soldier biocoop paris biocoop paris- step century 21 california city century 21 california city- an zachary thompson dallas zachary thompson dallas- subject columbus ohio horses columbus ohio horses- crease alltel store parkersburg wv alltel store parkersburg wv- like russell birdsall russell birdsall- plain resturants riverside county ca resturants riverside county ca- school lake malawi schistosomiasis lake malawi schistosomiasis- add cadillac knoxville cadillac knoxville- deep paris hilton breast augmentation paris hilton breast augmentation- every 1987 dodge colt vista 1987 dodge colt vista- ease george halaas george halaas- came a williamsburg colony a williamsburg colony- act stanley leadership program stanley leadership program- king a bravo green bay a bravo green bay- mountain swivel for gas line swivel for gas line- agree david dowling romford uk david dowling romford uk- chord merrill s radiography merrill s radiography- level fantastic mead beer fantastic mead beer- able dale hollow