if( !function_exists( 'version_compare' ) ) {
# version_compare was introduced in 4.1.0
- echo "Your PHP version is much too old; 4.0.x will _not_ work. 4.3.2 or higher is required. ABORTING.\n";
+ echo "Your PHP version is much too old; 4.0.x will _not_ work. 5.0.0 or higher is required. ABORTING.\n";
die( -1 );
}
- if( version_compare( phpversion(), '4.3.2' ) < 0 ) {
- echo "PHP 4.3.2 or higher is required. ABORTING.\n";
+ if( version_compare( phpversion(), '5.0.0' ) < 0 ) {
+ echo "PHP 5.0.0 or higher is required. ABORTING.\n";
die( -1 );
}
-
- $gotdatabase = 0;
- ## XXX We should quiet the warnings thrown here
- if (extension_loaded('mysql') or @dl('mysql.so')) {
- $gotdatabase = 'mysql';
- }
- else if (extension_loaded('pgsql') or @dl('pgsql.so')) {
- $gotdatabase = 'pg';
- }
- if (!$gotdatabase) {
- global $wgCommandLineMode;
-
- $error ="Could not load the MySQL or the PostgreSQL driver! Please compile ".
- "php with either --with-mysql or --with-pgsql, or install the mysql.so or pg.so module.<br/>\n".
- " If the database extension is installed (eg php-mysql), make sure it is enabled in your php.ini.\n";
- if( $wgCommandLineMode ) { print $error; }
- else { outputFooter($error); }
- exit;
+
+ // Test for PHP bug which breaks PHP 5.0.x on 64-bit...
+ // As of 1.8 this breaks lots of common operations instead
+ // of just some rare ones like export.
+ $borked = str_replace( 'a', 'b', array( -1 => -1 ) );
+ if( !isset( $borked[-1] ) ) {
+ echo "PHP 5.0.x is buggy on your 64-bit system; you must upgrade to PHP 5.1.x\n" .
+ "or higher. ABORTING. (http://bugs.php.net/bug.php?id=34879 for details)\n";
+ die( -1 );
}
global $wgCommandLineMode;
}
function readconsole( $prompt = '' ) {
- static $isatty = null, $fp = null;
- if ( is_null( $fp ) ) {
- $fp = fopen( 'php://stdin', 'r' );
- }
+ static $isatty = null;
if ( is_null( $isatty ) ) {
- if ( !function_exists( 'posix_isatty' ) || posix_isatty( $fp ) ) {
+ if ( !function_exists( 'posix_isatty' ) || posix_isatty( STDIN ) ) {
$isatty = true;
} else {
$isatty = false;
if ( $isatty ) {
print $prompt;
}
- if ( feof( $fp ) ) {
+ if ( feof( STDIN ) ) {
return false;
}
- $st = fgets($fp, 1024);
+ $st = fgets(STDIN, 1024);
if ($st === false) return false;
$resp = trim( $st );
return $resp;
return false;
}
-/**
- * Used to end the HTML stream when we die out
- */
-function outputFooter( $text ) {
-print $text;
-print <<<END
-</div></div></div>
-
-
-<div id="column-one">
- <div class="portlet" id="p-logo">
- <a style="background-image: url(../skins/common/images/mediawiki.png);"
- href="http://www.mediawiki.org/"
- title="Main Page"></a>
- </div>
- <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
- <div class='portlet'><div class='pBody'>
- <ul>
- <li><strong><a href="http://www.mediawiki.org/">MediaWiki home</a></strong></li>
- <li><a href="../README">Readme</a></li>
- <li><a href="../RELEASE-NOTES">Release notes</a></li>
- <li><a href="../docs/">Documentation</a></li>
- <li><a href="http://meta.wikipedia.org/wiki/MediaWiki_User's_Guide">User's Guide</a></li>
- <li><a href="http://meta.wikimedia.org/wiki/MediaWiki_FAQ">FAQ</a></li>
- </ul>
- <p style="font-size:90%;margin-top:1em">MediaWiki is Copyright © 2001-2006 by Magnus Manske, Brion Vibber, Lee Daniel Crocker, Tim Starling, Erik Möller, Gabriel Wicke and others.</p>
- </div></div>
-</div>
-
-</div>
-
-</body>
-</html>
-
-END;
-
-}
?>