, 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 ); $sep = PATH_SEPARATOR; if( !ini_set( "include_path", ".$sep$IP$sep$IP/includes$sep$IP/languages" ) ) { set_include_path( ".$sep$IP$sep$IP/includes$sep$IP/languages" ); } # 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( "install-utils.inc" ); install_version_checks(); require_once( "includes/Defines.php" ); require_once( "includes/DefaultSettings.php" ); require_once( "includes/MagicWord.php" ); require_once( "includes/Namespace.php" ); require_once( "includes/ProfilerStub.php" ); ## 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( "install-utils.inc" ); require_once( "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 ) { $this->DBschema = $schema; switch ( $this->DBschema ) { case 'mysql5': $this->DBTableOptions = 'ENGINE=InnoDB, DEFAULT CHARSET=utf8'; $this->DBmysql5 = 'true'; break; case 'mysql5-binary': $this->DBTableOptions = 'ENGINE=InnoDB, DEFAULT CHARSET=binary'; $this->DBmysql5 = 'true'; break; default: $this->DBTableOptions = 'TYPE=InnoDB'; $this->DBmysql5 = 'false'; } # 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:"; foreach (array_keys($ourdb) AS $db) { if ($ourdb[$db]['havedriver']) { $DefaultDBtype = $db; print " ".$ourdb[$db]['fullname']; } } print "
  • \n"; if (count($phpdatabases) != 1) $DefaultDBtype = ''; 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; "; if( $wgUsePathInfo ) { print "ok, using pretty URLs (index.php/Page_Title)"; } else { print "using ugly URLs (index.php?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->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 ) { echo( '
  • Couldn\'t find Turck MMCache, eAccelerator, or APC. Object caching functions cannot be used.
  • ' ); } $conf->diff3 = false; $diff3locations = array_merge( array( "/usr/bin", "/usr/local/bin", "/opt/csw/bin", "/usr/gnu/bin", "/usr/sfw/bin" ), explode( $sep, 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"; 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 ); ## MySQL specific: $conf->DBprefix = importPost( "DBprefix" ); $conf->setSchema( importPost( "DBschema", "mysql4" ) ); $conf->LanguageCode = importPost( "LanguageCode", "en" ); ## 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"; } if( $conf->SysopPass == "" ) { $errs["SysopPass"] = "Must not be blank"; } if( $conf->SysopPass != $conf->SysopPass2 ) { $errs["SysopPass2"] = "Passwords don't match!"; } $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( "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; } elseif ( 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 ( $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 ); } } # 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 " 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/index.php?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.

    • turck ) { echo "
    • "; aField( $conf, "Shm", "Turck MMCache", "radio", "turck" ); echo "
    • "; } if ( $conf->apc ) { echo "
    • "; aField( $conf, "Shm", "APC", "radio", "apc" ); echo "
    • "; } if ( $conf->eaccel ) { echo "
    • "; aField( $conf, "Shm", "eAccelerator", "radio", "eaccel" ); echo "
    • "; } ?>

    Using a shared memory system such as Turck MMCache, APC, eAccelerator, or Memcached will speed up MediaWiki significantly. Memcached is the best solution but needs to be installed. Specify the server addresses and ports in a comma-separated list. Only use Turck shared memory if the wiki will be running on a single Apache server.

    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:

    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 into the parent directory, then follow this link to your wiki.

    \n"; } } 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 '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( \"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']}\"; ## 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://meta.wikimedia.org/Enotif and http://meta.wikimedia.org/Eauthent ## 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']}\"; \$wgDBport = \"{$slconf['DBport']}\"; \$wgDBprefix = \"{$slconf['DBprefix']}\"; # MySQL table options to use during installation or update \$wgDBTableOptions = \"{$slconf['DBTableOptions']}\"; # Schemas for Postgres \$wgDBmwschema = \"{$slconf['DBmwschema']}\"; \$wgDBts2schema = \"{$slconf['DBts2schema']}\"; # Experimental charset support for MySQL 4.1/5.0. \$wgDBmysql5 = {$conf->DBmysql5}; ## 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; if( !isset( $wgLanguageNames ) ) { require_once( "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 "
    _

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

    recipe for pork bar b que

    recipe for pork bar b que

    cool appetite supressant food

    appetite supressant food

    please diabetic fat free chocolate cake recipe

    diabetic fat free chocolate cake recipe

    during dinner dance dress

    dinner dance dress

    spend plastics and food storage safety

    plastics and food storage safety

    famous cookbook recipe categories

    cookbook recipe categories

    example india hay sack cooking

    india hay sack cooking

    tell bun levels raw food diet

    bun levels raw food diet

    middle business casual for dinner

    business casual for dinner

    spring michigan peach recipes

    michigan peach recipes

    much bed and breakfast tybee island georgia

    bed and breakfast tybee island georgia

    your recipe graham cracker pie

    recipe graham cracker pie

    back whip cream frosting recipe

    whip cream frosting recipe

    pound yum woon sen recipes

    yum woon sen recipes

    reason pre oscar dinner

    pre oscar dinner

    reply dinner and dancing in fultondale alabama

    dinner and dancing in fultondale alabama

    wall food bank logo

    food bank logo

    tail recipe for cinnamon pinwheels

    recipe for cinnamon pinwheels

    ocean food expenditure for young single adult

    food expenditure for young single adult

    stand whole food markets national los angeles

    whole food markets national los angeles

    imagine cod liver tin recipe

    cod liver tin recipe

    if authentic anglo saxon recipes

    authentic anglo saxon recipes

    bar rice protein powder food grade

    rice protein powder food grade

    mind oklahoma city thai food

    oklahoma city thai food

    string campout cooking ideas

    campout cooking ideas

    best energique pet food

    energique pet food

    base patio cooking folsom ca

    patio cooking folsom ca

    field everlast meals

    everlast meals

    close oxidation in food

    oxidation in food

    season wild oats and whole foods market

    wild oats and whole foods market

    nor lactose free stuffed shells recipe

    lactose free stuffed shells recipe

    from myth of food miles

    myth of food miles

    feed sterling food service phoenix

    sterling food service phoenix

    study japanese beef soup recipe hibatchi

    japanese beef soup recipe hibatchi

    flow puff pastry apple recipe

    puff pastry apple recipe

    step natural food to lower blood pressure

    natural food to lower blood pressure

    bright hot cross bun recipe

    hot cross bun recipe

    three what food does china eat

    what food does china eat

    shell swift current bed and breakfast

    swift current bed and breakfast

    who wine and food cherry wood golf

    wine and food cherry wood golf

    settle recipe layer cake chocolate and white

    recipe layer cake chocolate and white

    oh breakfast in cambridge ma

    breakfast in cambridge ma

    yellow vidalia onion salad dressing recipe

    vidalia onion salad dressing recipe

    why kosher recipes for nine days

    kosher recipes for nine days

    contain recipes milk egg free

    recipes milk egg free

    real thermal insulators for food

    thermal insulators for food

    held bed breakfast berlin

    bed breakfast berlin

    continent barbecue beef jerky recipe

    barbecue beef jerky recipe

    own recipe label template

    recipe label template

    such butternut squash with pecans recipe

    butternut squash with pecans recipe

    gun boston roast recipe

    boston roast recipe

    position raw food recipes easy

    raw food recipes easy

    window recipe for grilled chilean sea bass

    recipe for grilled chilean sea bass

    describe recipe oreo like

    recipe oreo like

    inch springfield ohio food bank

    springfield ohio food bank

    found high fiber muffin recipe

    high fiber muffin recipe

    invent rasberry coffee cake recipes

    rasberry coffee cake recipes

    is food procurement

    food procurement

    chart bartender drink shot recipes

    bartender drink shot recipes

    talk crock pot breakfast receipe

    crock pot breakfast receipe

    present kona natural foods

    kona natural foods

    leave dinner train louisville

    dinner train louisville

    wild culinary historians of new york about

    culinary historians of new york about

    save st patrick green drinks

    st patrick green drinks

    agree grill pork tenderloin recipe

    grill pork tenderloin recipe

    talk talledaga speedway friday dinner

    talledaga speedway friday dinner

    silent us foods corportation

    us foods corportation

    duck apache indiens food

    apache indiens food

    similar pork lon roast recipe

    pork lon roast recipe

    some 5 gallon mash recipes

    5 gallon mash recipes

    atom bed breakfast cheyenne wyoming

    bed breakfast cheyenne wyoming

    tone recipes for sushi

    recipes for sushi

    long laborday recipe

    laborday recipe

    save miami food fest

    miami food fest

    record san francisco sourdough recipe

    san francisco sourdough recipe

    enough bulk foods cacao

    bulk foods cacao

    produce hambuger patie recipes

    hambuger patie recipes

    bottom papaya recipes

    papaya recipes

    rail recipes from weight watchers 2004

    recipes from weight watchers 2004

    poem 3rd grade food chains

    3rd grade food chains

    cow tooele free lunch

    tooele free lunch

    duck smoked octopus recipe

    smoked octopus recipe

    rub harmful food addatives

    harmful food addatives

    burn play snowy lunch rush

    play snowy lunch rush

    white english tea menus recipes

    english tea menus recipes

    mass wise foods fire

    wise foods fire

    fun food for the boobs

    food for the boobs

    favor the moroccan food

    the moroccan food

    father greek food recipes

    greek food recipes

    cause deer food plot green field

    deer food plot green field

    happen raw dog recipes

    raw dog recipes

    this greenie cocktail recipe

    greenie cocktail recipe

    tail recipes with eggplant

    recipes with eggplant

    sleep cherry drink recipes

    cherry drink recipes

    box recipe pour tarte a la creme

    recipe pour tarte a la creme

    bear tetra medicated food

    tetra medicated food

    possible red pepper soup recipe

    red pepper soup recipe

    pull culinary cartoons

    culinary cartoons

    weight taboo sex anal enema meal worms

    taboo sex anal enema meal worms

    track shop organic food online

    shop organic food online

    animal traditional christmas dinner menu

    traditional christmas dinner menu

    when falernum recipe retail

    falernum recipe retail

    strong avoiding food reactions

    avoiding food reactions

    crease food disposel

    food disposel

    wear annual steak festivals food festivals

    annual steak festivals food festivals

    mother stash tea bed and breakfast offer

    stash tea bed and breakfast offer

    duck low fat sugar free meals

    low fat sugar free meals

    stone samples of circus food tickets

    samples of circus food tickets

    the culinary institute of america extern

    culinary institute of america extern

    fish waltham cat food

    waltham cat food

    hard davis county food handlers permit

    davis county food handlers permit

    your nepali food travel guide

    nepali food travel guide

    area robert luba menu foods

    robert luba menu foods

    nine aunt rebecca s bed breakfast

    aunt rebecca s bed breakfast

    metal turkey smoking recipes

    turkey smoking recipes

    use food for crappie

    food for crappie

    box school lunch russia

    school lunch russia

    provide spognebob dinner dash downloads

    spognebob dinner dash downloads

    keep bed breakfast summer employment

    bed breakfast summer employment

    noise broccoli raisan salad recipe

    broccoli raisan salad recipe

    mine food safety in relation to health

    food safety in relation to health

    cat history of solar food dryer

    history of solar food dryer

    famous nutrition foods avoid patients ulcerative colitis

    nutrition foods avoid patients ulcerative colitis

    divide dry cured salami food safety

    dry cured salami food safety

    second the food saver

    the food saver

    plan gruesome creepy halloween recipes

    gruesome creepy halloween recipes

    hunt thai dinner music free

    thai dinner music free

    often tiawan recipes and pictures

    tiawan recipes and pictures

    charge easy oven roast recipe

    easy oven roast recipe

    sent recipes from chef walter scheib

    recipes from chef walter scheib

    string nutrition facts for fast food restraunts

    nutrition facts for fast food restraunts

    table food dermatitis

    food dermatitis

    deal chicken hats recipe

    chicken hats recipe

    went recipe for frangipane

    recipe for frangipane

    color tennessee bed and breakfasts

    tennessee bed and breakfasts

    cook recipes for homemade dog biscuits yogurt

    recipes for homemade dog biscuits yogurt

    fell recipes for two people

    recipes for two people

    dress mexican white cheese dipping sauce recipe

    mexican white cheese dipping sauce recipe

    fun recipe using pecan pumpkin butter

    recipe using pecan pumpkin butter

    exercise cooking meals with a rice cooker

    cooking meals with a rice cooker

    system fully cooked thanksgiving turkey dinners

    fully cooked thanksgiving turkey dinners

    bring diet dog food recall

    diet dog food recall

    fly recipe english muffin bread

    recipe english muffin bread

    hear mcdonalds food in 1987

    mcdonalds food in 1987

    great organic food and health news

    organic food and health news

    rule perry ellis portfolio white shawl dinner

    perry ellis portfolio white shawl dinner

    thought sweet potato souffle recipe

    sweet potato souffle recipe

    iron dutch creek foods

    dutch creek foods

    figure bread and rolls recipes

    bread and rolls recipes

    foot recipe soft chocolate chip cookies

    recipe soft chocolate chip cookies

    mix cooking pinto beans in slow cooker

    cooking pinto beans in slow cooker

    hear macayo enchilada recipe

    macayo enchilada recipe

    sheet mr foods receipts

    mr foods receipts

    one eating small meals versus large meals

    eating small meals versus large meals

    carry male syrup recipes

    male syrup recipes

    brought organic ferret food

    organic ferret food

    log tuna recipes with herbs

    tuna recipes with herbs

    between dinner time conversation starters

    dinner time conversation starters

    double cream shrimp recipes

    cream shrimp recipes

    claim peddlers village murder mystery dinner

    peddlers village murder mystery dinner

    control sauted vegetable recipes asian

    sauted vegetable recipes asian

    and wohlfahrt haus dinner theatre

    wohlfahrt haus dinner theatre

    event breadcrumbs recipes

    breadcrumbs recipes

    possible boeuf en daube recipe

    boeuf en daube recipe

    surprise living foods molokai coconut

    living foods molokai coconut

    small low calorie carrot cake recipes

    low calorie carrot cake recipes

    their poisoned pet food 2007

    poisoned pet food 2007

    beat fijian bread recipes

    fijian bread recipes

    nine energy workout protein food

    energy workout protein food

    multiply morrilton ar culinary creations

    morrilton ar culinary creations

    first denim lunch bag

    denim lunch bag

    window bread making machine recipes banana nut

    bread making machine recipes banana nut

    equal cilantro dressing recipe

    cilantro dressing recipe

    buy recipe for jamaican relish

    recipe for jamaican relish

    use food products made in milwaukee wisconsin

    food products made in milwaukee wisconsin

    case lambert s potatoes and onions recipe

    lambert s potatoes and onions recipe

    corn cone 6 gale recipes

    cone 6 gale recipes

    quite recipe tamale fillings

    recipe tamale fillings

    once belachan okra recipe

    belachan okra recipe

    result recipes for lughnasadh

    recipes for lughnasadh

    ball orange chicken and rice recipe

    orange chicken and rice recipe

    sing german new year s recipes

    german new year s recipes

    contain pittsburgh ham barbecue recipes

    pittsburgh ham barbecue recipes

    body madagascars food

    madagascars food

    live food aqnd desserts

    food aqnd desserts

    always cooking meat internal temperature

    cooking meat internal temperature

    rose recipes for a rainy day

    recipes for a rainy day

    through brocolli potatoe soup recipe slowcooker

    brocolli potatoe soup recipe slowcooker

    sense paradiso food atlanta

    paradiso food atlanta

    learn dinner and show packages las vegas

    dinner and show packages las vegas

    captain spaghetti bacon egg parmesan cheese recipe

    spaghetti bacon egg parmesan cheese recipe

    felt recipe toblerone baked cheesecake

    recipe toblerone baked cheesecake

    scale most requested chocolate cake recipes

    most requested chocolate cake recipes

    can plastic toys for mixed drinks

    plastic toys for mixed drinks

    cook pack lunch flight jamaica

    pack lunch flight jamaica

    field italion food

    italion food

    fire tilapia rice recipe

    tilapia rice recipe

    grand grill recipes for steamboat round beef

    grill recipes for steamboat round beef

    until dog food td diet for teeth

    dog food td diet for teeth

    draw homemade chicken sausage recipes

    homemade chicken sausage recipes

    blood guatemala foods

    guatemala foods

    cow recipe keeper barbara c jones

    recipe keeper barbara c jones

    colony broadway palm dinner theatre mesa arizona

    broadway palm dinner theatre mesa arizona

    over alcohol jungle juice recipes

    alcohol jungle juice recipes

    rest creamy garlic lemon chicken recipe

    creamy garlic lemon chicken recipe

    bottom recipe national dish

    recipe national dish

    such bed and breakfast bridtol road bath

    bed and breakfast bridtol road bath

    provide pam lenier bed and breakfast inns

    pam lenier bed and breakfast inns

    seven killing mosquitos on picnic area

    killing mosquitos on picnic area

    path get cooking anoka mn

    get cooking anoka mn

    should coffee recipes no alcohol

    coffee recipes no alcohol

    favor citronella lotion recipe

    citronella lotion recipe

    symbol spain local food

    spain local food

    doctor pork loin smoked center chop recipe

    pork loin smoked center chop recipe

    flower dunkin donuts old fashioned doughnut recipe

    dunkin donuts old fashioned doughnut recipe

    brown history public food stores of california

    history public food stores of california

    time pina colada cake recipe

    pina colada cake recipe

    path healthy food philippines

    healthy food philippines

    our kraft foods richmond

    kraft foods richmond

    rule the smoky mountians tn dinner shows

    the smoky mountians tn dinner shows

    who easy waldorf salad recipes

    easy waldorf salad recipes

    me genically modified food

    genically modified food

    tiny peanut butter butterscotch cereal recipe

    peanut butter butterscotch cereal recipe

    she fly fans food service

    fly fans food service

    round health foods madison

    health foods madison

    object peanut sauce noodles recipe

    peanut sauce noodles recipe

    spend appetizer tart recipes

    appetizer tart recipes

    among recipe from outback restaurant

    recipe from outback restaurant

    left recipe fried apples cast iron skillet

    recipe fried apples cast iron skillet

    had rice crispy treats recipe marshmallow cream

    rice crispy treats recipe marshmallow cream

    middle nyc wine food dinners

    nyc wine food dinners

    king weekly family dinner menu shopping list

    weekly family dinner menu shopping list

    chief beef mango stir fry recipe

    beef mango stir fry recipe

    carry math cooking

    math cooking

    chart recipes in bolivia

    recipes in bolivia

    week research on meals with family

    research on meals with family

    whose purple squash recipes

    purple squash recipes

    shore vacuum packing foods

    vacuum packing foods

    method serranos fine mexican food arizona

    serranos fine mexican food arizona

    bottom highland haven bed and breakfast

    highland haven bed and breakfast

    condition culinary tours greeece

    culinary tours greeece

    else printable recipe card holder

    printable recipe card holder

    play bronx italian food

    bronx italian food

    ball simpson pa fireman picnic

    simpson pa fireman picnic

    place recipe for spiked watermelon

    recipe for spiked watermelon

    sound wayland food mart

    wayland food mart

    climb goat meals

    goat meals

    case recipes for turkey soup

    recipes for turkey soup

    dollar baked sweet potato fry recipe

    baked sweet potato fry recipe

    thing recipe for arroz con habichuelas

    recipe for arroz con habichuelas

    invent recipes copy kat

    recipes copy kat

    sheet list of food stores in chicago

    list of food stores in chicago

    team marscapone recipes

    marscapone recipes

    gold chinese food north beach miami

    chinese food north beach miami

    watch amounts of iodine in foods

    amounts of iodine in foods

    bar onion confit recipe

    onion confit recipe

    will cake chocolate recipe

    cake chocolate recipe

    probable food water supply uganda

    food water supply uganda

    of japanese spinach recipe

    japanese spinach recipe

    friend low carb coffee drinks

    low carb coffee drinks

    shoe lucketts va bed breakfast

    lucketts va bed breakfast

    land parsley boiled potatoes recipe

    parsley boiled potatoes recipe

    protect school food service and emergencies

    school food service and emergencies

    sand chinese food pittsford new york

    chinese food pittsford new york

    city recipes nuts spice

    recipes nuts spice

    except high protein low vitamin k foods

    high protein low vitamin k foods

    tie dinosour beans recipe

    dinosour beans recipe

    student bed and breakfasts and portland oregon

    bed and breakfasts and portland oregon

    send recipes kids will like

    recipes kids will like

    show doner kabob recipe

    doner kabob recipe

    compare easy lasagne recipes

    easy lasagne recipes

    meet nantucket has no fast food francises

    nantucket has no fast food francises

    house recipes using hamber meat

    recipes using hamber meat

    chord brownie mix in jar recipes

    brownie mix in jar recipes

    stay food feathers italian

    food feathers italian

    hunt recipes for leftover pork roast

    recipes for leftover pork roast

    slip cornbread with whole corn recipe

    cornbread with whole corn recipe

    plan restaurants in mexico food

    restaurants in mexico food

    differ no bake caramel popcorn recipe

    no bake caramel popcorn recipe

    money dinner and dancing in traversecity michigan

    dinner and dancing in traversecity michigan

    final federal hill food sampling tickets

    federal hill food sampling tickets

    choose colonial food of new england

    colonial food of new england

    wrote recipe chicken noodle casserole

    recipe chicken noodle casserole

    heart meadowfoam oil recipes

    meadowfoam oil recipes

    gentle alternative methods maximize food production

    alternative methods maximize food production

    our recipes summer simple

    recipes summer simple

    present paleo beef jerky recipe

    paleo beef jerky recipe

    million recipes in colonial philadelphia 1793

    recipes in colonial philadelphia 1793

    life martha stewart holiday recipes

    martha stewart holiday recipes

    particular bbq pork riblets recipes

    bbq pork riblets recipes

    which recipe sauteed petrale sole

    recipe sauteed petrale sole

    study transgenic foods in stores

    transgenic foods in stores

    base caramel custard recipe

    caramel custard recipe

    phrase raw food mexico

    raw food mexico

    wall spanish pork cabbage recipe

    spanish pork cabbage recipe

    must angelino s food chain

    angelino s food chain

    instant recipe for olive garden dressing

    recipe for olive garden dressing

    middle whole foods overland park kansas

    whole foods overland park kansas

    home armenian mediterranean food portland oregon

    armenian mediterranean food portland oregon

    afraid bed and breakfasts in kauai

    bed and breakfasts in kauai

    deep recipe salsa roasted

    recipe salsa roasted

    far bachelorette martini recipe

    bachelorette martini recipe

    five food served in the country clombia

    food served in the country clombia

    winter grungy recipe

    grungy recipe

    now what food group is corn in

    what food group is corn in

    bright olive dip recipe

    olive dip recipe

    design bbc recipe

    bbc recipe

    during ecology food web

    ecology food web

    know international recipes home page

    international recipes home page

    system chessy chicken enchilada recipe

    chessy chicken enchilada recipe

    toward chicken sausage recipes

    chicken sausage recipes

    our spaghetti meat pie recipe

    spaghetti meat pie recipe

    rich belgian dubbel recipe

    belgian dubbel recipe

    division prociutto recipe

    prociutto recipe

    friend rabbit eating human food

    rabbit eating human food

    broad nationwide food grade tankers

    nationwide food grade tankers

    rock recipe frang

    recipe frang

    settle biscuick pizza dough recipes

    biscuick pizza dough recipes

    sell recipes patties shrimp

    recipes patties shrimp

    we dinner in montana

    dinner in montana

    five food exchange diets

    food exchange diets

    last organic foods duke university

    organic foods duke university

    safe recipe bsa bovine albumin solution

    recipe bsa bovine albumin solution

    came spicy tenderloin breading recipe

    spicy tenderloin breading recipe

    science samples of meal tickets

    samples of meal tickets

    afraid big bowl recipes

    big bowl recipes

    check bread machine recipe using rapidrise

    bread machine recipe using rapidrise

    air bologna italy one day cooking classes

    bologna italy one day cooking classes

    thing food for young nestling lovebirds

    food for young nestling lovebirds

    flower homade farmers omelet recipe

    homade farmers omelet recipe

    control filth test food

    filth test food

    sister timberwolf organics dog food

    timberwolf organics dog food

    order kettle beef recipes

    kettle beef recipes

    grand nettutor food places

    nettutor food places

    loud fajita recipe chicken

    fajita recipe chicken

    call raw food diet eating locally winter

    raw food diet eating locally winter

    mother baby carrots salad recipe

    baby carrots salad recipe

    color glenco food for today student workbook

    glenco food for today student workbook

    keep russia food fact

    russia food fact

    gray red pepper cream soup recipe

    red pepper cream soup recipe

    busy cooking classes in housto

    cooking classes in housto

    blow what foods have carbon

    what foods have carbon

    contain no alcohol drinks

    no alcohol drinks

    crowd rolled cookie recipe

    rolled cookie recipe

    eat pistachio encrusted tilapia recipe

    pistachio encrusted tilapia recipe

    best food banks in md

    food banks in md

    wood recipe for homemade candy corn

    recipe for homemade candy corn

    window where to but gluten free foods

    where to but gluten free foods

    money julia child s sauce recipes

    julia child s sauce recipes

    read culinary education center of monmouth county

    culinary education center of monmouth county

    time what is junk food

    what is junk food

    cool london broil crock pot recipes

    london broil crock pot recipes

    rock szechuan recipe red sauce

    szechuan recipe red sauce

    teach recipes for beach vacation

    recipes for beach vacation

    many foods that stop angiotensin

    foods that stop angiotensin

    four keylime cheeseball recipe

    keylime cheeseball recipe

    wide focaccia yeast bread recipe

    focaccia yeast bread recipe

    hand orange hills restaurant cream corn recipe

    orange hills restaurant cream corn recipe

    hard food of seed gathers

    food of seed gathers

    low sanyo foods corp of america

    sanyo foods corp of america

    took recipe tuna steak

    recipe tuna steak

    cent stouffers instant meals nutritional values

    stouffers instant meals nutritional values

    there deep fried mushrooms recipe

    deep fried mushrooms recipe

    nothing chocolate dinner candles

    chocolate dinner candles

    smell crockpot meals

    crockpot meals

    matter low fat orange muffin recipe

    low fat orange muffin recipe

    eat ron s castle foods

    ron s castle foods

    stood 2007 recall on pet food

    2007 recall on pet food

    garden idaho wild rice recipe

    idaho wild rice recipe

    effect persimmon cookie recipes

    persimmon cookie recipes

    cell sugarfree pina colada recipe

    sugarfree pina colada recipe

    does old timer foods

    old timer foods

    smile food additives and health harmful

    food additives and health harmful

    port gluten free chocolate chip cookie recipes

    gluten free chocolate chip cookie recipes

    spring gourmet finger food recipes

    gourmet finger food recipes

    tie ice box dinner

    ice box dinner

    boat blue recipes

    blue recipes

    lead nylon lunch bag kids monogram

    nylon lunch bag kids monogram

    say home party food caterer w bartener

    home party food caterer w bartener

    hit cute dog food bowls

    cute dog food bowls

    food good food summer festival

    good food summer festival

    thin calorie value foods

    calorie value foods

    dog culinary pittsburgh

    culinary pittsburgh

    foot meringue recipes

    meringue recipes

    root easy childen s recipes

    easy childen s recipes

    together food plant construction london ontario

    food plant construction london ontario

    men homemade pet shampoo recipe

    homemade pet shampoo recipe

    it recipes green beans schezuan

    recipes green beans schezuan

    plan recipes for colon cleanser

    recipes for colon cleanser

    shop cat food recall friskies

    cat food recall friskies

    take corn flake recipe

    corn flake recipe

    draw fda rat poison pey food

    fda rat poison pey food

    quick barf frozen dog foods

    barf frozen dog foods

    several food that contains tryptophan

    food that contains tryptophan

    garden bed and breakfast review

    bed and breakfast review

    through food mats for children

    food mats for children

    method photos of mixed drinks

    photos of mixed drinks

    glass coal miners lunch break

    coal miners lunch break

    consider recipe for fresh fig appetizers

    recipe for fresh fig appetizers

    this ricardo falcon food greeley

    ricardo falcon food greeley

    whose bastille recipe

    bastille recipe

    substance food agro and allied in nigeria

    food agro and allied in nigeria

    coat beef caldo recipe

    beef caldo recipe

    electric nautilus bed and breakfast seattle

    nautilus bed and breakfast seattle

    trip paula deen spice mix recipes

    paula deen spice mix recipes

    could crespelles recipes

    crespelles recipes

    left moroccan salad recipes

    moroccan salad recipes

    especially whole foods market metairie la

    whole foods market metairie la

    job pearson food

    pearson food

    sea ethnic foods rising

    ethnic foods rising

    song green mountain food service whitehall

    green mountain food service whitehall

    took zionsville bed breakfast

    zionsville bed breakfast

    join recipe for blondie brownies

    recipe for blondie brownies

    substance picnic in maine

    picnic in maine

    dream culinary knife sets

    culinary knife sets

    hunt