Topic on Project:Support desk

Fatal Error after installation with Oracle backend

12
80.254.154.83 (talkcontribs)

I receive the below error after installation of wiki version 1.22.4

Fatal error: Call to a member function checkTitleEncoding() on a non-object in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\wiki\includes\db\DatabaseOracle.php on line 1158

In Apache error.log this message shows up

[Wed Mar 19 13:27:09 2014] [warn] [client 10.105.140.107] mod_fcgid: stderr: PHP Fatal error: Call to a member function checkTitleEncoding() on a non-object in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\wiki\\includes\\db\\DatabaseOracle.php on line 1158

PHP Version 5.4.26 Apache Version 2.2.21 mod_fcgid Version 2.3.6

Any idea where to search?

BR Roebel

Ciencia Al Poder (talkcontribs)
80.254.154.83 (talkcontribs)
  1. Site language code, should be one of the list in ./languages/Names.php

$wgLanguageCode = "da";

80.254.154.83 (talkcontribs)

When I change value to $wgLanguageCode = "da"; I receive the following error:

Fatal error: Call to a member function checkTitleEncoding() on a non-object in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki\includes\db\DatabaseOracle.php on line 1158

When I change value to $wgLanguageCode = "en"; I receive the following error:

Warning: strpos() expects parameter 1 to be string, object given in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki\includes\db\DatabaseOracle.php on line 1146

Warning: strpos() expects parameter 1 to be string, object given in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki\includes\db\DatabaseOracle.php on line 1142

Warning: substr() expects parameter 1 to be string, object given in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki\includes\db\DatabaseOracle.php on line 1142

Fatal error: Maximum execution time of 30 seconds exceeded in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki\includes\db\DatabaseOracle.php on line 605

80.254.154.83 (talkcontribs)

Just to information. All wiki tables has been created successfully and I am able to connect to the database and make simple requests as below:

<?php

$c = oci_connect("user", "password", "scan1/devdwh");
$s = oci_parse($c, "select table_name from all_tables where owner = 'WIKI'");
$r = oci_execute($s);

echo "<table border='1'>\n";
$ncols = oci_num_fields($s);
echo "<tr>\n";
for ($i = 1; $i <= $ncols; ++$i) {
	$colname = oci_field_name($s, $i);
	echo "  <th><b>".htmlentities($colname, ENT_QUOTES)."</b></th>\n";
}
echo "</tr>\n";

while (($row = oci_fetch_array($s, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
	echo "<tr>\n";
	foreach ($row as $item) {
		echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES):"&nbsp;")."</td>\n";
	}
	echo "</tr>\n";
}
echo "</table>\n";

?>

But I am not able to launch the created wiki site without have the above mentioned errors / warnings.

Ciencia Al Poder (talkcontribs)

go to the maintenance folder and run php eval.php

Paste this line and press enter:

var_dump( $wgContLang );

And the same with this:

var_dump( Language::factory( 'da' ) );

Paste the results here.

I'd also try to install again from scratch, downloading the tarball again, unpacking, drop the database and create it again from the installer.

Statjer (talkcontribs)
Statjer (talkcontribs)

Install log from another attempt.

Including extensions... done Setting up database... done Creating database user... done Creating tables...

Der opstod fejl i en forespørgsel til databasen. Dette kan indikere en fejl i softwaren.

Forespørgsel: CREATE SEQUENCE user_user_id_seq MINVALUE 0 START WITH 0 Funktion: DatabaseOracle::doQuery Fejl: 955 ORA-00955: name is already used by an existing object Backtrace:

  1. 0 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\db\DatabaseOracle.php(359): DatabaseOracle->reportQueryError('ORA-00955: name...', 955, 'CREATE SEQUENCE...', 'DatabaseOracle:...')
  2. 1 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\db\DatabaseOracle.php(1084): DatabaseOracle->doQuery('CREATE SEQUENCE...')
  3. 2 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\db\Database.php(3567): DatabaseOracle->sourceStream(Resource id #100, false, false, 'DatabaseBase::s...', false)
  4. 3 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\installer\DatabaseInstaller.php(187): DatabaseBase->sourceFile('C:\Program File...')
  5. 4 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\installer\OracleInstaller.php(286): DatabaseInstaller->createTables()
  6. 5 [internal function]: OracleInstaller->createTables(Object(OracleInstaller))
  7. 6 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\installer\Installer.php(1589): call_user_func(Array, Object(OracleInstaller))
  8. 7 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\installer\WebInstallerPage.php(1254): Installer->performInstallation(Array, Array)
  9. 8 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\includes\installer\WebInstaller.php(275): WebInstaller_Install->execute()
  10. 9 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\mw-config\index.php(61): WebInstaller->execute(Array)
  11. 10 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\mediawiki-1.22.4\mw-config\index.php(29): wfInstallerMain()
  12. 11 {main}
Statjer (talkcontribs)

Unfortunately this is not possible in our windows environment. When I run the php eval.php script from IE it returns the following message:

This script must be run from the command line

I have tried to drop all objects from the Oracle schema owner and made a completely new install. Now it returns the following errormessage:

A database query error has occurred. This may indicate a bug in the software.

I have also tried to install the same version 1.22.4 on a Unix environment but on a MariaDB instead of Oracle databsen with success.

But in our case it is not an option. I must run on a Oracle database.

BR Jens Roebel

Ciencia Al Poder (talkcontribs)

Maintenance scripts must be run from command line, as the error message says, and not from the browser.

The error about CREATE SEQUENCE suggests that you haven't deleted the old database/schema

80.254.154.75 (talkcontribs)

This is the result from a total new install. The Oracle user has been dropped with cascade option and recreated.

Install

##Including extensions... done
##Setting up database... done
##Creating database user... done
##Creating tables... done
##Populating default interwiki table... done
##Initializing statistics... done
##Generating secret keys... done
##Creating administrator user account... done
##Creating main page with default content...
Warning: strpos() expects parameter 1 to be string, object given in C:\Apache2.2\htdocs\wiki\includes\db\DatabaseOracle.php on line 1146

Warning: strpos() expects parameter 1 to be string, object given in C:\Apache2.2\htdocs\wiki\includes\db\DatabaseOracle.php on line 1142

Warning: substr() expects parameter 1 to be string, object given in C:\Apache2.2\htdocs\wiki\includes\db\DatabaseOracle.php on line 1142
 done
##Creating tables for enabled extensions...

When trying to enter the page this error message shows up:

Fatal error: Call to a member function checkTitleEncoding() on a non-object in C:\Apache2.2\htdocs\wiki\includes\db\DatabaseOracle.php on line 1158
Ciencia Al Poder (talkcontribs)

I can't set up an environment with oracle, so if you don't receive any help from others, feel free to open a bug in bugzilla. See How to report a bug

Reply to "Fatal Error after installation with Oracle backend"