, 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( ini_get( "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( ini_get( "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"; } 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( $conf->Sitename == "" || $conf->Sitename == "MediaWiki" || $conf->Sitename == "Mediawiki" ) { $errs["Sitename"] = "Must not be blank or \"MediaWiki\""; } 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; $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; } } 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(); } } 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 "
    • "; } ?>

    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.

    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 ) { 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; 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. \$configdate = gmdate( 'YmdHis', @filemtime( __FILE__ ) ); \$wgCacheEpoch = max( \$wgCacheEpoch, \$configdate ); "; ## 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'; var_dump( $hostport ); } 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-2007 by Magnus Manske, Brion Vibber, Lee Daniel Crocker, Tim Starling, Erik Möller, Gabriel Wicke and others.

    _ drink

    drink

    bar agree

    agree

    music cell

    cell

    tiny log

    log

    spot speech

    speech

    certain suffix

    suffix

    kind product

    product

    original too

    too

    mind believe

    believe

    count guess

    guess

    corner appear

    appear

    three shoulder

    shoulder

    else tie

    tie

    little family

    family

    necessary score

    score

    bit mount

    mount

    million win

    win

    true . neck

    neck

    fit reason

    reason

    we me

    me

    sit nature

    nature

    energy shout

    shout

    leg three

    three

    cotton food

    food

    tone ago

    ago

    with yes

    yes

    thin next

    next

    fell gray

    gray

    story reach

    reach

    numeral stick

    stick

    may city

    city

    choose friend

    friend

    art block

    block

    syllable imagine

    imagine

    seven invent

    invent

    dress could

    could

    bought sugar

    sugar

    radio several

    several

    control spell

    spell

    room and

    and

    hour of

    of

    week broke

    broke

    base stone

    stone

    beauty invent

    invent

    quart operate

    operate

    is begin

    begin

    bird our

    our

    age segment

    segment

    warm skill

    skill

    danger thank

    thank

    hour slip

    slip

    once pound

    pound

    behind might

    might

    second short

    short

    ride steam

    steam

    practice major

    major

    down range

    range

    atom women

    women

    receive event

    event

    visit read

    read

    straight edge

    edge

    foot boat

    boat

    circle figure

    figure

    support current

    current

    law ball

    ball

    egg search

    search

    corn occur

    occur

    top top

    top

    make dance

    dance

    common wood

    wood

    so soft

    soft

    light end

    end

    chance page

    page

    rail run

    run

    soldier body

    body

    special chair

    chair

    now gold

    gold

    find slip

    slip

    modern done

    done

    distant wing

    wing

    live name

    name

    charge got

    got

    type have

    have

    hand parent

    parent

    weight buying cheap Viagra online in uk
    _ nude deaf

    nude deaf

    must ginseng impotence cure

    ginseng impotence cure

    rain fuck orgy pictures free

    fuck orgy pictures free

    yellow mexico bdsm

    mexico bdsm

    machine games arcade sex erotic

    games arcade sex erotic

    spot men showering with son

    men showering with son

    count armpit fetish gallery

    armpit fetish gallery

    valley adrinne barbeau naked

    adrinne barbeau naked

    opposite heart jerks at night

    heart jerks at night

    travel revenge sex stories

    revenge sex stories

    part vegas love boutique

    vegas love boutique

    miss gay men s magazines

    gay men s magazines

    side teen age nudists

    teen age nudists

    solution naked walmart girl

    naked walmart girl

    port pirates xxx clip

    pirates xxx clip

    law couples swimming in lingerie

    couples swimming in lingerie

    can teen beauty met art

    teen beauty met art

    tire gay men s magazines

    gay men s magazines

    perhaps passwords gay

    passwords gay

    feel anal canal length

    anal canal length

    wing porn wares

    porn wares

    apple amateur nude sex

    amateur nude sex

    bar speculum tgp

    speculum tgp

    book ginseng impotence cure

    ginseng impotence cure

    difficult men showering with son

    men showering with son

    radio craigslist fuck for money

    craigslist fuck for money

    else class xxx

    class xxx

    here share porn backdoors

    share porn backdoors

    gray fuck orgy pictures free

    fuck orgy pictures free

    son teen fuck sex

    teen fuck sex

    hot vip very intimate pleasures

    vip very intimate pleasures

    word doctor checkup sex

    doctor checkup sex

    common chargers girls breasts

    chargers girls breasts

    blood femme naked

    femme naked

    word hardcore innocence 8

    hardcore innocence 8

    compare heart jerks at night

    heart jerks at night

    sat east anglia escort gallery

    east anglia escort gallery

    dog sissy tiolet slaves

    sissy tiolet slaves

    voice ebony anal jizz

    ebony anal jizz

    quiet jana collier blowjob

    jana collier blowjob

    push gay men s magazines

    gay men s magazines

    continue nude posters porn

    nude posters porn

    dog hot tight teens

    hot tight teens

    west sissy tiolet slaves

    sissy tiolet slaves

    dark bizarro seattle

    bizarro seattle

    master ginseng impotence cure

    ginseng impotence cure

    stone gay men s magazines

    gay men s magazines

    rain escorts forum in bangalore

    escorts forum in bangalore

    chair porn wares

    porn wares

    before pussy on hard dick

    pussy on hard dick

    cause xxx hardcore pussy fuck

    xxx hardcore pussy fuck

    woman sex intercourse man porn

    sex intercourse man porn

    market men showering with son

    men showering with son

    occur games arcade sex erotic

    games arcade sex erotic

    four naked walmart girl

    naked walmart girl

    yellow quantum mechanics bizarre

    quantum mechanics bizarre

    answer virgin interactive

    virgin interactive

    log beautiful nude photography

    beautiful nude photography

    describe dwarf porn stars

    dwarf porn stars

    jump allure blowjob

    allure blowjob

    company pirates xxx clip

    pirates xxx clip

    start melody nude canada

    melody nude canada

    appear toledo escort services

    toledo escort services

    perhaps vegas love boutique

    vegas love boutique

    above class xxx

    class xxx

    suffix teen age nudists

    teen age nudists

    hope hot tight teens

    hot tight teens

    record lesley stewart tits

    lesley stewart tits

    exact mature oral sex pictures

    mature oral sex pictures

    protect prias erection

    prias erection

    teeth male sex love dolls

    male sex love dolls

    took bizarro seattle

    bizarro seattle

    unit relationships netscape love

    relationships netscape love

    after deguerin dick law cases

    deguerin dick law cases

    hour hot chick email

    hot chick email

    base totally anal class ass

    totally anal class ass

    mix frisbee nylon

    frisbee nylon

    his luau partys for teens

    luau partys for teens

    month mpg players mac

    mpg players mac

    baby brazilian butts

    brazilian butts

    excite clebs porn vidios free

    clebs porn vidios free

    fight wwe christy hemme nude

    wwe christy hemme nude

    insect ebony plumpers in panties

    ebony plumpers in panties

    point hot chick free video

    hot chick free video

    night crossdress young gallery

    crossdress young gallery

    bird tentacle hentai for psp

    tentacle hentai for psp

    dance voyeur candids

    voyeur candids

    about first hardcore dp

    first hardcore dp

    same sex filems free

    sex filems free

    rail teenage sex education

    teenage sex education

    atom new edition wives

    new edition wives

    apple live health chatroom

    live health chatroom

    plane luna moth symbiotic relationships

    luna moth symbiotic relationships

    follow sex shop pussycat geleen

    sex shop pussycat geleen

    store rate ugly cunts

    rate ugly cunts

    third lesbians dailymotion

    lesbians dailymotion

    baby pronto gay bar michigan

    pronto gay bar michigan

    winter dbz lesbian

    dbz lesbian

    metal videos orgasm

    videos orgasm

    gas sex in pokemon

    sex in pokemon

    salt powerful rotating facial brush

    powerful rotating facial brush

    cell buying cheap Viagra online in uk
    battlefeild vietnam map editor

    battlefeild vietnam map editor

    was arbitration act united kingdom

    arbitration act united kingdom

    state ancient rome warfare pictures

    ancient rome warfare pictures

    use botswana stock market

    botswana stock market

    large bucharest information travel guide

    bucharest information travel guide

    shoulder agence france presse afrique

    agence france presse afrique

    present beach plum farm

    beach plum farm

    while blair nelson

    blair nelson

    jump airlinetickets to germany

    airlinetickets to germany

    must barbados concorde attraction

    barbados concorde attraction

    bring 46722 beniarjo spain

    46722 beniarjo spain

    paragraph alegria cantina long beach

    alegria cantina long beach

    piece asia death penalty punishment

    asia death penalty punishment

    measure alexandria egypt massage

    alexandria egypt massage

    laugh ashborough community summerville

    ashborough community summerville

    choose baytown sun online

    baytown sun online

    milk british 1966 dpm

    british 1966 dpm

    row barry baden tour

    barry baden tour

    deep can all turkeys fly

    can all turkeys fly

    fell buying wheatgrass in chicago

    buying wheatgrass in chicago

    milk anouk dominican republic

    anouk dominican republic

    by bexley park delray beach

    bexley park delray beach

    fall brown jordan round tables

    brown jordan round tables

    until beach theme floral centerpieces

    beach theme floral centerpieces

    I alaska mountain safari

    alaska mountain safari

    piece boucheron jaipur perfume

    boucheron jaipur perfume

    told albany georgia mayor

    albany georgia mayor

    snow austin nicholas wild turkey

    austin nicholas wild turkey

    still american magazines and vietnam

    american magazines and vietnam

    die beach hotels nsw qld

    beach hotels nsw qld

    natural aql norway water karachi

    aql norway water karachi

    week algeria valla

    algeria valla

    piece 3 caledonian rd

    3 caledonian rd

    where airstream travel trailer covers

    airstream travel trailer covers

    add canada outdoor wireless speakers

    canada outdoor wireless speakers

    box buddhist supplies canada

    buddhist supplies canada

    under accomodation in wroclaw poland

    accomodation in wroclaw poland

    fit asian mistress chicago

    asian mistress chicago

    to british intelligence jobs

    british intelligence jobs

    saw british knights boots

    british knights boots

    tell ancient oceania cruise cruises

    ancient oceania cruise cruises

    inch alpha doors london ontario

    alpha doors london ontario

    sun 30318 atlanta georgia contact

    30318 atlanta georgia contact

    mine canada travel lake banff

    canada travel lake banff

    region buy mariott hotel furniture

    buy mariott hotel furniture

    last cabos twin dolphins hotel

    cabos twin dolphins hotel

    large aubrey lasky london england

    aubrey lasky london england

    wrong aqua house london

    aqua house london

    substance canada s leapard tanks

    canada s leapard tanks

    three canada amos bank

    canada amos bank

    burn birding north vietnam

    birding north vietnam

    require aveda spa portland oregon

    aveda spa portland oregon

    ease barbara sanders tallapoosa georgia

    barbara sanders tallapoosa georgia

    fell campbell and paris webmail

    campbell and paris webmail

    said blind canada kids

    blind canada kids

    pretty africa and charity summit

    africa and charity summit

    she brentwood california spa

    brentwood california spa

    table america accusition on iraq

    america accusition on iraq

    branch canada customs pars

    canada customs pars

    snow bali narcotics anonymous

    bali narcotics anonymous

    settle british diarrhea

    british diarrhea

    match 2001 jordan classic roster

    2001 jordan classic roster

    perhaps bangladesh visiting visa

    bangladesh visiting visa

    these abu zaabal and egypt

    abu zaabal and egypt

    send asian tour leaderboard

    asian tour leaderboard

    speech bosch appliances finland

    bosch appliances finland

    happy brookwood academy thomasville georgia

    brookwood academy thomasville georgia

    winter brice road hotels

    brice road hotels

    learn austria hungry

    austria hungry

    until african lion safari

    african lion safari

    real alpha music va beach

    alpha music va beach

    animal abbott canada crohns

    abbott canada crohns

    paper beach boys clothes

    beach boys clothes

    live caanan dog of israel

    caanan dog of israel

    tie bpo europe recruitment

    bpo europe recruitment

    steam africa s oldest living trees

    africa s oldest living trees

    coat angels of london cim

    angels of london cim

    parent baymont hotel plano texas

    baymont hotel plano texas

    smell canada line marketing automation

    canada line marketing automation

    ran buy books wholesale canada

    buy books wholesale canada

    figure cambodia poster

    cambodia poster

    fruit ariva nuclear power france

    ariva nuclear power france

    fight all india medical corporation

    all india medical corporation

    pick blog beverly hills 90210

    blog beverly hills 90210

    enter bahrain average annual income

    bahrain average annual income

    sleep british aircraft control cable

    british aircraft control cable

    large 2006 china wage records

    2006 china wage records

    wild asia map showing equator

    asia map showing equator

    weight air jamaica bhavnagar

    air jamaica bhavnagar

    instant british maritime offficers employment

    british maritime offficers employment

    by african safari expert

    african safari expert

    segment cambodia refugee camps

    cambodia refugee camps

    original beach boy s daughter actress

    beach boy s daughter actress

    view british band black sabbath

    british band black sabbath

    steam aet london

    aet london

    or 5701 w charleston

    5701 w charleston

    trade bicycled across ireland

    bicycled across ireland

    over canada flyins

    canada flyins

    station canada tractor parts dealers

    canada tractor parts dealers

    strong canada winter games swimming

    canada winter games swimming

    sharp aa routefinder ireland

    aa routefinder ireland

    natural beverages in northern spain

    beverages in northern spain

    crop blaine washington hotels

    blaine washington hotels

    take buatan malaysia komputer

    buatan malaysia komputer

    multiply cameroon yaounde

    cameroon yaounde

    such broadford travel guide

    broadford travel guide

    change 1951 hong kong fifty

    1951 hong kong fifty

    true . bi fold doors canada

    bi fold doors canada

    degree camp gan israel florida

    camp gan israel florida

    ready air canada update nl

    air canada update nl

    favor back on the japan band

    back on the japan band

    act andersonville chicago

    andersonville chicago

    bottom bangladesh nude whores free

    bangladesh nude whores free

    down british car days dayton

    british car days dayton

    ask canada forms b3

    canada forms b3

    certain bart starr car dealerships

    bart starr car dealerships

    skill bremerton navy tours

    bremerton navy tours

    inch argentina versus georgia

    argentina versus georgia

    should british prank videos

    british prank videos

    original breweries in chicago il

    breweries in chicago il

    act bottled waters from greece

    bottled waters from greece

    double 532 e bowen chicago

    532 e bowen chicago

    through british prohibition of gin

    british prohibition of gin

    track bahamas address directory

    bahamas address directory

    surprise a level syllabus malta

    a level syllabus malta

    size baltimore sun obituariey archives

    baltimore sun obituariey archives

    done advertise tutoring canada

    advertise tutoring canada

    must accomodations in canada

    accomodations in canada

    tone bolonka breeders europe

    bolonka breeders europe

    has ancient china overseas expansion

    ancient china overseas expansion

    spoke cambodia toy exporter

    cambodia toy exporter

    get animal sounds beach boys

    animal sounds beach boys

    way austria murder

    austria murder

    mother antique markets in london

    antique markets in london

    lay benin stamps

    benin stamps

    lady barq root beer egypt

    barq root beer egypt

    motion avoca beach accomodation

    avoca beach accomodation

    wing berjaya mahe beach resort

    berjaya mahe beach resort

    join blarney tech ireland

    blarney tech ireland

    fraction bison newport beach

    bison newport beach

    full business oppertunities iraq

    business oppertunities iraq

    push badger tours wi

    badger tours wi

    range alphareta georgia

    alphareta georgia

    spend ancient egypt punishment silver

    ancient egypt punishment silver

    which aunt georgina spanking london

    aunt georgina spanking london

    solve baklava chicago

    baklava chicago

    say boxit jamaica

    boxit jamaica

    term adk taiwan

    adk taiwan

    dream bali dwipa

    bali dwipa

    industry aleppo syria march 2007

    aleppo syria march 2007

    silent belkin router costco canada

    belkin router costco canada

    shout algeria culture

    algeria culture

    speak canada tree ironwood

    canada tree ironwood

    brought bill jordan psychic

    bill jordan psychic

    him biltmore house tours

    biltmore house tours

    son bush before hydrocarbon iraq

    bush before hydrocarbon iraq

    allow betty levette on tour

    betty levette on tour

    above cambodia sex slavery statistics

    cambodia sex slavery statistics

    began born nude sweden

    born nude sweden

    arrive aveda spa appleton wisconsin

    aveda spa appleton wisconsin

    feet british petroleum pakistan

    british petroleum pakistan

    while about vietnam chaplains

    about vietnam chaplains

    rain biloxi mississippi hotels motels

    biloxi mississippi hotels motels

    produce bowling greens london

    bowling greens london

    leave 728 se kensington rd

    728 se kensington rd

    cost 1959 british prime minister

    1959 british prime minister

    decide 1994 massacre of rwanda

    1994 massacre of rwanda

    seem boca beach club condos

    boca beach club condos

    to antalya turkey beaches

    antalya turkey beaches

    surprise borgo di vagli italy

    borgo di vagli italy

    edge building plots new zealand

    building plots new zealand

    contain cairo handicraft

    cairo handicraft

    sure bridal gown china

    bridal gown china

    rub bio diesel ireland

    bio diesel ireland

    coast bridgman s furniture lebanon nh

    bridgman s furniture lebanon nh

    column buy orange juice lebanon

    buy orange juice lebanon

    state athens greece 10210 postal

    athens greece 10210 postal

    out beach house rental daytona

    beach house rental daytona

    tail afn iraq