Does the command line installer work at all in MW 1.19.x?

Jump to: navigation, search

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]#
75.121.228.11611:54, 18 July 2012

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.

Bawolff (talk)19:39, 18 July 2012

Looks like it is exiting normally. I guess maybe I'll have to take some time to dig into the code and figure it out myself. It looks to me like the command line installer has a number of problems. I'm crap with OO PHP, but I can learn.

75.121.228.11620:52, 20 July 2012
 

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] );
                        }
                }
75.121.228.11605:16, 21 July 2012