, 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.

    gay teacher fucks student

    gay teacher fucks student

    second yobt chubby girls

    yobt chubby girls

    search nudist girl photos

    nudist girl photos

    sense loving sex video

    loving sex video

    paper singless

    singless

    work breast cancer marin cause

    breast cancer marin cause

    four nipples biten too hard

    nipples biten too hard

    collect enrico coveri kinky

    enrico coveri kinky

    burn porn infidelity

    porn infidelity

    machine tn wetsuit dealers

    tn wetsuit dealers

    past menstration sex pictures

    menstration sex pictures

    carry female bodybuilders spanking men

    female bodybuilders spanking men

    they erotic rituals

    erotic rituals

    stone lynns massage escort service

    lynns massage escort service

    my boobs mafia tgp hideout

    boobs mafia tgp hideout

    thus cute small chicks

    cute small chicks

    range mature junk

    mature junk

    where sims 2 transparent nude

    sims 2 transparent nude

    bought kayden kross porn videos

    kayden kross porn videos

    spread missy hardcore

    missy hardcore

    burn andrea james transgender

    andrea james transgender

    self anal glands feline

    anal glands feline

    quart pussy pop philadelphia

    pussy pop philadelphia

    lady gi won model sex

    gi won model sex

    distant lesbo cheerleaders

    lesbo cheerleaders

    care turkish bath nude

    turkish bath nude

    same gay tylor

    gay tylor

    correct relationships with an alcoholic

    relationships with an alcoholic

    brown gay black teens porno

    gay black teens porno

    post gang bang fuck fest

    gang bang fuck fest

    populate virgin nudist galleries

    virgin nudist galleries

    much milfs sexy young

    milfs sexy young

    air pissing her bed

    pissing her bed

    saw chennai spy cam sex

    chennai spy cam sex

    reason gay porn moives

    gay porn moives

    wheel adult sex ganes

    adult sex ganes

    system black blowjob asian slut

    black blowjob asian slut

    foot spice phone sex

    spice phone sex

    school garden hammock swing

    garden hammock swing

    bought cum facial free movies

    cum facial free movies

    particular watch wives fucking

    watch wives fucking

    morning sexuality soul nietzsche

    sexuality soul nietzsche

    is teen xxx free gallery

    teen xxx free gallery

    describe church nude

    church nude

    team big things in pussy

    big things in pussy

    flat regina moon mpegs

    regina moon mpegs

    wind nude simpson cartoon pictures

    nude simpson cartoon pictures

    paper woman sex hippo

    woman sex hippo

    remember stella schnabel topless

    stella schnabel topless

    please male shaving spanking story

    male shaving spanking story

    talk granny lesbian face sitting

    granny lesbian face sitting

    road glamour photography nude

    glamour photography nude

    cotton thai masturbation

    thai masturbation

    should huge dildo insertion

    huge dildo insertion

    street dangeling pussy lips

    dangeling pussy lips

    chair beauty salons 90048

    beauty salons 90048

    provide shaft porn

    shaft porn

    process donne mature

    donne mature

    and unix webcam

    unix webcam

    step littlest pussy

    littlest pussy

    practice bdsm chastity clips

    bdsm chastity clips

    press sex z illustrated dvd

    sex z illustrated dvd

    page real nude amateurs

    real nude amateurs

    fly ejaculating for pleasure

    ejaculating for pleasure

    just information of facials

    information of facials

    much indian girls naked vedio

    indian girls naked vedio

    capital knob anti

    knob anti

    string sex slave story

    sex slave story

    well sunny fist time nudist

    sunny fist time nudist

    love aisan mistress stories

    aisan mistress stories

    glad young asian coeds

    young asian coeds

    captain school upskirts camera

    school upskirts camera

    they wives sucking stranger cocks

    wives sucking stranger cocks

    party water sex pool spa

    water sex pool spa

    even finger fuck me

    finger fuck me

    valley marcy lesbian

    marcy lesbian

    protect college fuck fest dvd

    college fuck fest dvd

    your fake nude celeb archive

    fake nude celeb archive

    electric japanese lil facials

    japanese lil facials

    very tiffany teen 2007 galleries

    tiffany teen 2007 galleries

    wear melanie doutey nude

    melanie doutey nude

    govern bit tits patrol

    bit tits patrol

    cause homemake love swing

    homemake love swing

    moon animai porn preveiws

    animai porn preveiws

    bad naughty offices

    naughty offices

    short sample videos blowjobs

    sample videos blowjobs

    blue metformin and breast tenderness

    metformin and breast tenderness

    song armpits fetish

    armpits fetish

    put lawyer adriana strip

    lawyer adriana strip

    check nude sites for couples

    nude sites for couples

    iron coco austin fuck

    coco austin fuck

    saw pepper cunt

    pepper cunt

    gave tawnee pussy

    tawnee pussy

    problem eletric pussy

    eletric pussy

    box hd whores

    hd whores

    spot tiny women tgp

    tiny women tgp

    man petit asian transexuals

    petit asian transexuals

    lady sex toys vibrators

    sex toys vibrators

    plant pantyhose movie galleries

    pantyhose movie galleries

    thousand sex sites shaved pussy

    sex sites shaved pussy

    roll date gay chcago

    date gay chcago

    chick used bang golf head

    used bang golf head

    valley nude furniture dallas

    nude furniture dallas

    again virus safe porn

    virus safe porn

    fact naked molested girls

    naked molested girls

    notice little boys with breasts

    little boys with breasts

    wait eastern european male escort

    eastern european male escort

    little drunk blowjobs free movie

    drunk blowjobs free movie

    dear nude muscled males

    nude muscled males

    bottom diabetes and vaginal dryness

    diabetes and vaginal dryness

    region punk hardcore guitar tabs

    punk hardcore guitar tabs

    spend pycho sex

    pycho sex

    wrong sexy gay arab men

    sexy gay arab men

    plain gay daily thumbnail post

    gay daily thumbnail post

    toward burmese pornstars

    burmese pornstars

    her tasteful nude celebrities

    tasteful nude celebrities

    window sexy naked elfs

    sexy naked elfs

    teach aircraft blowjob

    aircraft blowjob

    among sex pice

    sex pice

    might oliver sykes sex

    oliver sykes sex

    doctor mpg player free download

    mpg player free download

    meat zemanova strip

    zemanova strip

    cry sex possitions

    sex possitions

    neighbor dick thunder

    dick thunder

    coat kukaku shiba naked

    kukaku shiba naked

    table love s auction rooms

    love s auction rooms

    five paris hiltion naked

    paris hiltion naked

    in tranny fucking girl

    tranny fucking girl

    complete indian pussy lick

    indian pussy lick

    horse byron long gay porn

    byron long gay porn

    rub az christian conferences love

    az christian conferences love

    create missouri teens

    missouri teens

    continent shirtless akon

    shirtless akon

    piece amy weinhaus nude

    amy weinhaus nude

    only teens and the 1950s

    teens and the 1950s

    decide dirty lesbian fuck

    dirty lesbian fuck

    bone garlic capsiles breast feeding

    garlic capsiles breast feeding

    level pornhost animal sex

    pornhost animal sex

    vary barton street whores

    barton street whores

    free love 88 7 fm

    love 88 7 fm

    division search results nude sluts

    search results nude sluts

    high isac teen

    isac teen

    arrive bermuda feel the love

    bermuda feel the love

    yet russian nude women photos

    russian nude women photos

    since nude females in hungary

    nude females in hungary

    us christina model naked tits

    christina model naked tits

    ready singer cruise bbw

    singer cruise bbw

    either phat booty milf

    phat booty milf

    figure oprah show sex reasignment

    oprah show sex reasignment

    stead sex offendors in kansas

    sex offendors in kansas

    port 4dd tits

    4dd tits

    cut fucking my dog mpegs

    fucking my dog mpegs

    century sabbath keeping singles

    sabbath keeping singles

    sentence vikki porn norwegian

    vikki porn norwegian

    discuss simulate oral sex

    simulate oral sex

    heat tit masturbation

    tit masturbation

    occur causes vaginal itch

    causes vaginal itch

    went national tube beaver wv

    national tube beaver wv

    area sheer stretch nylon

    sheer stretch nylon

    ice arp party sex

    arp party sex

    cent gay sauna stories

    gay sauna stories

    take drunk slutty grannys gangbang

    drunk slutty grannys gangbang

    age big breasted bed thrasher

    big breasted bed thrasher

    key cumming latin pussy

    cumming latin pussy

    clear tenjou tenge xxx

    tenjou tenge xxx

    present simple everyday teen hairstyles

    simple everyday teen hairstyles

    watch lawn swings

    lawn swings

    melody snatch lovers

    snatch lovers

    home gentle sex vids

    gentle sex vids

    exact beaver county twerp football

    beaver county twerp football

    part belladonna tgp

    belladonna tgp

    his brutal m2m

    brutal m2m

    side children pussy fucked

    children pussy fucked

    square georgetown strip clubs

    georgetown strip clubs

    star concrete blondes restaurant

    concrete blondes restaurant

    form transexual transformation

    transexual transformation

    best fairy tales xxx

    fairy tales xxx

    scale kathleen kruz lesbian video

    kathleen kruz lesbian video

    gave bang bus fucking

    bang bus fucking

    won't adultgames hentai

    adultgames hentai

    shall men s used thongs

    men s used thongs

    separate nude argen teen muriel

    nude argen teen muriel

    mix youngest teen fuck clips

    youngest teen fuck clips

    about bbw nip sucking clips

    bbw nip sucking clips

    master philippine porn fucking

    philippine porn fucking

    special long lesbian porn movies

    long lesbian porn movies

    meat 17 with big tits

    17 with big tits

    yellow webcam teen strip forums

    webcam teen strip forums

    steel erotic music net rado

    erotic music net rado

    red power fucked

    power fucked

    steam my sister fuck pics

    my sister fuck pics

    big i love you bernadett

    i love you bernadett

    with seattle passion parties

    seattle passion parties

    wide carousel gay

    carousel gay

    both sexy nude boobs photographs

    sexy nude boobs photographs

    column facebook increase interpersonal relationships

    facebook increase interpersonal relationships

    choose transsexual web page

    transsexual web page

    written erotic passions

    erotic passions

    pose 5 tyler hatch nude

    5 tyler hatch nude

    wash personals katoey dating thailand

    personals katoey dating thailand

    sign milk maid porn

    milk maid porn

    baby hardcore free porn pics

    hardcore free porn pics

    wife extreme femdom dvds

    extreme femdom dvds

    and whipping asian women

    whipping asian women

    seven topless gainesville

    topless gainesville

    shore real sissy

    real sissy

    food desi auties erotic stories

    desi auties erotic stories

    low wife squirting tit milk

    wife squirting tit milk

    than sex tabbos

    sex tabbos

    blood naked picture on webcam

    naked picture on webcam

    voice tads erotic adventure archives

    tads erotic adventure archives

    guide milf free porn video

    milf free porn video

    set tv escort columbus ga

    tv escort columbus ga

    ball beyond sex roles

    beyond sex roles

    continue savage love seattle

    savage love seattle

    hard tranny genitals

    tranny genitals

    milk horny wet moms

    horny wet moms

    from r rated sex trailers

    r rated sex trailers

    mine cvs freestyle test strip

    cvs freestyle test strip

    those long lasting condoms

    long lasting condoms

    jump seehersquirt fuck

    seehersquirt fuck

    fat lingerie sex pics

    lingerie sex pics

    own naked birds

    naked birds

    quotient alt binaries young teen

    alt binaries young teen

    let nude in parade

    nude in parade

    miss transsexual divas 12 info

    transsexual divas 12 info

    or masturbation assignment

    masturbation assignment

    such teen oral sex party

    teen oral sex party

    woman repairing relationships

    repairing relationships

    minute new orleans nude hotel

    new orleans nude hotel

    road tranny divas xxx

    tranny divas xxx

    division rich babes porn sites

    rich babes porn sites

    bought bangbros network pass

    bangbros network pass

    swim odessa personals

    odessa personals

    any nude girl wallpaper

    nude girl wallpaper

    rule gay scene boys

    gay scene boys

    copy jessicas world adult webcam

    jessicas world adult webcam

    flat gay grand isle louisiana

    gay grand isle louisiana

    soil schoolgirl underwear galleries

    schoolgirl underwear galleries

    list pussy gallries

    pussy gallries

    die anal sex after abortion

    anal sex after abortion

    sister 18 blonde cute video

    18 blonde cute video

    watch the horny duck

    the horny duck

    cow youtube booty poppin

    youtube booty poppin

    equate donkey sex in europe

    donkey sex in europe

    plan original pinup calendar art

    original pinup calendar art

    flow breast cancer taxol effects

    breast cancer taxol effects

    dad harry potter gay fanfic

    harry potter gay fanfic

    this see her squirt guick

    see her squirt guick

    light alison angel pink pornstar

    alison angel pink pornstar

    wire anna nicole smoth topless

    anna nicole smoth topless

    heart april gallery little sex

    april gallery little sex

    gather christopher cuties

    christopher cuties

    pick indiana sex offender reg

    indiana sex offender reg

    meet naughty text messeges

    naughty text messeges

    chord sex post stoies

    sex post stoies

    young thong glamour

    thong glamour

    valley pulling my cock out

    pulling my cock out

    winter cum hardcore teen

    cum hardcore teen

    continent transvestite sucking

    transvestite sucking

    could pussy and black dicks

    pussy and black dicks

    blow women masturbation at home

    women masturbation at home

    farm lesbian loving

    lesbian loving

    horse cherrie cameltoe

    cherrie cameltoe

    want singer shania twain nude

    singer shania twain nude

    change 48315 escort service

    48315 escort service

    know sex hungry babes

    sex hungry babes

    fruit jennifers love letters

    jennifers love letters

    sound lo li ta porn

    lo li ta porn

    soldier roxy reynolds pornstar preview

    roxy reynolds pornstar preview

    and butts in panty

    butts in panty

    bird brazilian pissing

    brazilian pissing

    whether current teen fads

    current teen fads

    shape lesbians click

    lesbians click

    score down shirt voyeur

    down shirt voyeur

    stick hairy idian sluts

    hairy idian sluts

    put moms getting fucked hard

    moms getting fucked hard

    window counseling jobs minnesota

    counseling jobs minnesota

    lead orillia sweet hot escorts

    orillia sweet hot escorts

    million cold sores sex

    cold sores sex

    engine cock brotha

    cock brotha

    clean teenage girls horny story

    teenage girls horny story

    car teens couples

    teens couples

    feel masha anal

    masha anal

    are environmental sex determination

    environmental sex determination

    get sporting cock

    sporting cock

    don't facial wrinkle

    facial wrinkle

    quiet dildo forced abuse bondage

    dildo forced abuse bondage

    walk barbbra dare nude

    barbbra dare nude

    stood big breast free trailers

    big breast free trailers

    our animal and men sex

    animal and men sex

    fast 10 top nude beaches

    10 top nude beaches

    again tokoyo sex

    tokoyo sex

    horse cumshots caught on video

    cumshots caught on video

    object farm sex free videos

    farm sex free videos

    body brandy taylor porn movies

    brandy taylor porn movies

    very jennifer aniston and topless

    jennifer aniston and topless

    able zshare milf cookies

    zshare milf cookies

    decimal ayanami hentai

    ayanami hentai

    dress bdsm fetish attire

    bdsm fetish attire

    protect cute lesbian gif

    cute lesbian gif

    write sex women nude free

    sex women nude free

    no crossdresser sex stories

    crossdresser sex stories

    early young and bald vaginas

    young and bald vaginas

    believe webcam sex clips

    webcam sex clips

    also larger volumn ejaculation

    larger volumn ejaculation

    vary milf hunter lara

    milf hunter lara

    dead pantsing no underwear

    pantsing no underwear

    history sucking gay black dick

    sucking gay black dick

    hand horny fat tits thumbnails

    horny fat tits thumbnails

    feel tabor vibrator

    tabor vibrator

    far naked kate playground

    naked kate playground

    lost mariska hagitay nude

    mariska hagitay nude

    type humble kingwood personals

    humble kingwood personals

    lady gay celebrity fake

    gay celebrity fake

    broad creampie sex free movie

    creampie sex free movie

    energy facials xxxx

    facials xxxx

    settle long trannie clips

    long trannie clips

    company ssri ejaculation board

    ssri ejaculation board

    section sex wet spray pussy

    sex wet spray pussy

    girl youngest cunt pictures

    youngest cunt pictures

    clothe dallas tx escort services

    dallas tx escort services

    coast nude french european contestants

    nude french european con