bar(), etc etc) which throw parse errors in PHP 4. // Setup.php and ObjectCache.php have structures invalid in PHP 5.0 and 5.1, respectively. if ( !function_exists( 'version_compare' ) || version_compare( phpversion(), '5.2.3' ) < 0 ) { $phpversion = htmlspecialchars( phpversion() ); $errorMsg = << MediaWiki requires PHP 5.2.3 or higher. You are running PHP $phpversion.

Please consider upgrading your copy of PHP. PHP versions less than 5.3.0 are no longer supported by the PHP Group and will not receive security or bugfix updates.

If for some reason you are unable to upgrade your PHP version, you will need to download an older version of MediaWiki from our website. See our compatibility page for details of which versions are compatible with prior versions of PHP.

ENDL; wfDie( $errorMsg ); } # Initialise common code. This gives us access to GlobalFunctions, the AutoLoader, and # the globals $wgRequest, $wgOut, $wgUser, $wgLang and $wgContLang, amongst others; it # does *not* load $wgTitle or $wgArticle require ( dirname( __FILE__ ) . '/includes/WebStart.php' ); wfProfileIn( 'index.php' ); wfProfileIn( 'index.php-setup' ); $maxLag = $wgRequest->getVal( 'maxlag' ); if ( !is_null( $maxLag ) ) { $lb = wfGetLB(); // foo()->bar() is not supported in PHP4 list( $host, $lag ) = $lb->getMaxLag(); if ( $lag > $maxLag ) { header( 'HTTP/1.1 503 Service Unavailable' ); header( 'Retry-After: ' . max( intval( $maxLag ), 5 ) ); header( 'X-Database-Lag: ' . intval( $lag ) ); header( 'Content-Type: text/plain' ); if( $wgShowHostnames ) { echo "Waiting for $host: $lag seconds lagged\n"; } else { echo "Waiting for a database server: $lag seconds lagged\n"; } exit; } } # Initialize MediaWiki base class $context = RequestContext::getMain(); $mediaWiki = new MediaWiki( $context ); # Set title from request parameters $wgTitle = $mediaWiki->getTitle(); $action = $wgRequest->getVal( 'action', 'view' ); wfProfileOut( 'index.php-setup' ); # Send Ajax requests to the Ajax dispatcher. if ( $wgUseAjax && $action == 'ajax' ) { $dispatcher = new AjaxDispatcher(); $dispatcher->performAction(); wfProfileOut( 'index.php' ); $mediaWiki->restInPeace(); exit; } if ( $wgUseFileCache && $wgTitle !== null ) { wfProfileIn( 'index.php-filecache' ); // Raw pages should handle cache control on their own, // even when using file cache. This reduces hits from clients. if ( $action != 'raw' && HTMLFileCache::useFileCache() ) { /* Try low-level file cache hit */ $cache = new HTMLFileCache( $wgTitle, $action ); if ( $cache->isFileCacheGood( /* Assume up to date */ ) ) { /* Check incoming headers to see if client has this cached */ if ( !$context->output->checkLastModified( $cache->fileCacheTime() ) ) { $cache->loadFromFileCache(); } # Do any stats increment/watchlist stuff $wgArticle = MediaWiki::articleFromTitle( $wgTitle, $context ); $wgArticle->viewUpdates(); # Tell OutputPage that output is taken care of $context->output->disable(); wfProfileOut( 'index.php-filecache' ); $mediaWiki->finalCleanup(); wfProfileOut( 'index.php' ); $mediaWiki->restInPeace(); exit; } } wfProfileOut( 'index.php-filecache' ); } # Setting global variables in mediaWiki $mediaWiki->setVal( 'DisableHardRedirects', $wgDisableHardRedirects ); $mediaWiki->setVal( 'EnableCreativeCommonsRdf', $wgEnableCreativeCommonsRdf ); $mediaWiki->setVal( 'EnableDublinCoreRdf', $wgEnableDublinCoreRdf ); $mediaWiki->setVal( 'Server', $wgServer ); $mediaWiki->setVal( 'SquidMaxage', $wgSquidMaxage ); $mediaWiki->setVal( 'UseExternalEditor', $wgUseExternalEditor ); $mediaWiki->setVal( 'UsePathInfo', $wgUsePathInfo ); $mediaWiki->performRequestForTitle( $wgArticle ); $mediaWiki->finalCleanup(); wfProfileOut( 'index.php' ); $mediaWiki->restInPeace(); /** * Display something vaguely comprehensible in the event of a totally unrecoverable error. * Does not assume access to *anything*; no globals, no autloader, no database, no localisation. * Safe for PHP4 (and putting this here means that WebStart.php and GlobalSettings.php * no longer need to be). * * Calling this function kills execution immediately. * * @param $errorMsg String fully-escaped HTML */ function wfDie( $errorMsg ){ // Use the version set in DefaultSettings if possible, but don't rely on it global $wgVersion, $wgLogo; $version = isset( $wgVersion ) && $wgVersion ? htmlspecialchars( $wgVersion ) : ''; $logo = isset( $wgLogo ) && $wgLogo ? $wgLogo : 'http://upload.wikimedia.org/wikipedia/commons/1/1c/MediaWiki_logo.png'; header( $_SERVER['SERVER_PROTOCOL'] . ' 500 MediaWiki configuration Error', true, 500 ); header( 'Content-type: text/html; charset=UTF-8' ); // Don't cache error pages! They cause no end of trouble... header( 'Cache-control: none' ); header( 'Pragma: nocache' ); ?> MediaWiki <?php echo $version; ?> The MediaWiki logo

MediaWiki internal error