Topic on Extension talk:CirrusSearch

Fatal Error: Class Not Found (new installation)

4
206.116.111.163 (talkcontribs)

I'm encountering an error with CirrusSearch both from CLI and MW1.24.

CLI ouput:

$> php updateSearchIndexConfig.php PHP Fatal error: Class 'CirrusSearch\Connection' not found in /opt/www/sites/mediawiki/extensions/CirrusSearch/maintenance/updateSearchIndexConfig.php on line 47

Output of error.log:

2015/04/08 13:27:16 [error] 2266#0: *146 FastCGI sent in stderr: "PHP message: PHP Fatal error: Cannot instantiate abstract class ElasticaConnection in /opt/www/sites/mediawiki/extensions/Elastica/ElasticaConnection.php on line 37" while reading response header from upstream, client: [ipaddress], server: [servername], request: "GET /index.php?search=audit&title=Special%3ASearch&go=Go HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "[servername]", referrer: "[servername]/Main_Page"

LocalSettings.php

require_once "$IP/extensions/Elastica/Elastica.php";

require_once "$IP/extensions/CirrusSearch/CirrusSearch.php";

$wgDisableSearchUpdate = true;

$wgCirrusSearchServers = array( 'localhost' );

$wgSearchType = 'CirrusSearch';


File permissions appear to be properly set. All other extensions are functioning (including Elastica).

Can anyone provide some insight into how this may be resolved?

206.116.111.163 (talkcontribs)

Managed to resolve the CLI issue with some additional settings due to a conflict with ElasticSearch 1.5. Error is persisting with web access.

BDavis (WMF) (talkcontribs)
PHP Fatal error: Cannot instantiate abstract class ElasticaConnection in /opt/www/sites/mediawiki/extensions/Elastica/ElasticaConnection.php on line 37

This looks to be a late static binding failure.

	public static function getSingleton() {
		static $instance;
		if ( !$instance ) {
			$instance = new static;
		}
		return $instance;
	}

Line 37 is the $instance = new static; line and static should presumably be bound to the \CirrusSearch\Connection class rather than the ElasticaConnection parent class where the method is declared.

What PHP version are you using? I can't find any obvious PHP interpreter bugs related to this but I may be missing something.

198.84.189.163 (talkcontribs)

$> php -v returns 5.4.37. Nothing particularly exotic.

Reply to "Fatal Error: Class Not Found (new installation)"