Does the command line installer work at all in MW 1.19.x?
On CentOS 5.8, I use the command line installer (maintenance/install.php) successfully to install MW 1.18 with the following command:
php maintenance/install.php --dbname testdb --dbserver localhost --dbtype mysql --dbuser mediawiki \ --dbpass pword --installdbpass pword --installdbuser dbroot --pass pword --scriptpath /wiki \ --server test.mydomain.com --confpath /var/tmp "Test Wiki" WikiSysop
The same command on the same server does nothing when I use it with MW 1.19.0 or 1.19.1. It outputs a warning message about SQLite and exits.
I get the same thing even with just the --env-checks flag. Under 1.18.4, I get a report on the environment. In 1.19.x, I just get the SQLite warning and exit.
It looks like it is bombing out due to the available SQLite version, even though I have specified mysql. Removing SQLite isn't really an option on CentOS, since yum depends on it.
Here is output run back to back on the same machine:
[root@ip-10-62-91-61 mediawiki-1.18.4]# uname -a Linux ip-10-62-91-61 2.6.18-308.8.2.el5.centos.plusxen #1 SMP Tue Jun 12 16:27:53 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux [root@ip-10-62-91-61 mediawiki-1.18.4]# lsb_release -a LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch Distributor ID: CentOS Description: CentOS release 5.8 (Final) Release: 5.8 Codename: Final [root@ip-10-62-91-61 mediawiki-1.18.4]# php -v PHP 5.3.6 (cli) (built: Apr 25 2011 10:45:59) Copyright (c) 1997-2011 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies [root@ip-10-62-91-61 mediawiki-1.18.4]#
MediaWiki 1.18.4:
[root@ip-10-62-91-61 mediawiki-1.18.4]# php maintenance/install.php --dbname testdb2 \ --dbserver localhost --dbtype mysql --dbuser mediawiki --dbpass pword --installdbpass pword \ --installdbuser dbroot --pass pword --scriptpath /wiki --server test.mydomain.com \ --confpath /var/tmp "Test Wiki" WikiSysop PHP 5.3.6 is installed. Warning: SQLite is compiled without the FTS3 module, search features will be unavailable on this backend. Warning: Could not find eAccelerator, APC, XCache or WinCache. Object caching is not enabled. Found ImageMagick: /usr/bin/convert. Image thumbnailing will be enabled if you enable uploads. Using server name "test.mydomain.com". Using server URL "test.mydomain.com/wiki". Warning: Your default directory for uploads (/mnt/ephemeral/www/mediawiki-1.18.4/images/) is not checked for vulnerability to arbitrary script execution during the CLI install. Warning: The intl PECL extension is not available to handle Unicode normalization, falling back to slow pure-PHP implementation. If you run a high-traffic site, you should read a little on Unicode normalization. The environment has been checked. You can install MediaWiki. Setting up database done Creating tables done Creating database user done Populating default interwiki table done Initializing statistics done Generating secret keys done Creating administrator user account done Creating main page with default content done [root@ip-10-62-91-61 mediawiki-1.18.4]#
MediaWiki 1.19.1:
[root@ip-10-62-91-61 mediawiki-1.19.1]# php maintenance/install.php --dbname testdb3 \ --dbserver localhost --dbtype mysql --dbuser mediawiki --dbpass pword --installdbpass pword \ --installdbuser dbroot --pass pword --scriptpath /wiki --server test.mydomain.com \ --confpath /var/tmp "Test Wiki" WikiSysop PHP 5.3.6 is installed. Warning: SQLite is compiled without the FTS3 module, search features will be unavailable on this backend. Warning: you have SQLite 3.3.6, which is lower than minimum required version 3.3.7. SQLite will be unavailable. [root@ip-10-62-91-61 mediawiki-1.19.1]#
Its possible there was some sort of php fatal error, try enabling error reporting just to check.
Unfortunatly the cli installer doesn't get as much love as the normal installer afaik.
I figured out exactly where it breaks, but my OO PHP skills are not strong enough to puzzle out exactly why.
In includes/installer/Installer.php (lines 649-561), disabling showStatusMessage as follows allows the installer to run successfully. Hopefully someone who knows the code better can figure out why.
foreach ( array_keys( $databases ) as $db ) {
$installer = $this->getDBInstaller( $db );
$status = $installer->checkPrerequisites();
var_dump($status);
# if ( !$status->isGood() ) {
# $this->showStatusMessage( $status );
# }
if ( !$status->isOK() ) {
unset( $databases[$db] );
}
}