I installed parsoid from its official repository, and configured it correctly by adding my Mediawiki API to /etc/mediawiki/parsoid/settings.js
. I also removed the Interwiki options from my /usr/lib/parsoid/src/api/localsettings.js
file, because they seem to be replaced by the parsoidConfig.setMwApi option in the settings.js file.
When running nodejs /usr/lib/parsoid/src/api/server.js
from the command promt, I get the following error message:
[fatal][worker][4915] uncaught exception object is not a function
TypeError: object is not a function
at new ParsoidService (/usr/lib/parsoid/src/api/ParsoidService.js:43:12)
at Object.<anonymous> (/usr/lib/parsoid/src/api/server.js:203:12)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
[warning][master][4882] worker 4911 died (1), restarting.
When I run service parsoid start
and service parsoid status
I am always getting the information, that there is no parsoid process running.
Can someone explain me why Parsoid does not work?
EDIT:
localsettings.js
/*
* This is a sample configuration file.
*
* Copy this file to localsettings.js and edit that file to fit your needs.
*
* Also see the file ParserService.js for more information.
*/
exports.setup = function( parsoidConfig ) {
// The URL here is supposed to be your MediaWiki installation root
//parsoidConfig.setInterwiki( 'localhost', 'http://domain.com/Wiki/api.php' );
//parsoidConfig.setInterwiki( 'foo', 'http://localhost/wikiarst/api.php' );
//parsoidConfig.setInterwiki( 'noconn', 'http://213.127.84.12:80/wikiarst/api.php' );
//parsoidConfig.setInterwiki( 'disney', 'http://disneychannel.wikia.com/api.php' );
// Use the PHP preprocessor to expand templates via the MW API (default true)
//parsoidConfig.usePHPPreProcessor = true;
// Use selective serialization (default false)
parsoidConfig.useSelser = true;
// parsoid cache url
//parsoidConfig.parsoidCacheURI = 'http://localhost:8000/';
//parsoidConfig.trace = true;
//parsoidConfig.traceFlags = 'selser,wts';
//parsoidConfig.traceFlags = 'selser';
//parsoidConfig.defaultAPIProxyURI = 'http://localhost/';
};
/* vim: set filetype=javascript noexpandtab ts=4 sw=4 cindent : */
settings.js
/*
* This is a sample configuration file.
*
* Copy this file to localsettings.js and edit that file to fit your needs.
*
* Also see:
* - api/server.js for more information about passing config files via
* the commandline.
* - lib/mediawiki.ParsoidConfig.js all the properties
* that you can configure here. Not all properties are
* documented here.
*/
'use strict';
exports.setup = function(parsoidConfig) {
// Set your own user-agent string
// Otherwise, defaults to "Parsoid/<current-version-defined-in-package.json>"
//parsoidConfig.userAgent = "My-User-Agent-String";
// The URL of your MediaWiki API endpoint.
parsoidConfig.setMwApi({ prefix: 'localhost', uri: 'http://domain.com/Wiki/api.php' });
// To specify a proxy (or proxy headers) specific to this prefix (which
// overrides defaultAPIProxyURI) use:
/*
parsoidConfig.setMwApi({
prefix: 'localhost',
uri: 'http://localhost/w/api.php',
// set `proxy` to `null` to override and force no proxying.
proxy: {
uri: 'http://my.proxy:1234/',
headers: { 'X-Forwarded-Proto': 'https' } // headers are optional
}
});
*/
// We pre-define wikipedias as 'enwiki', 'dewiki' etc. Similarly
// for other projects: 'enwiktionary', 'enwikiquote', 'enwikibooks',
// 'enwikivoyage' etc. (default true)
//parsoidConfig.loadWMF = false;
// A default proxy to connect to the API endpoints.
// Default: undefined (no proxying).
// Overridden by per-wiki proxy config in setMwApi.
//parsoidConfig.defaultAPIProxyURI = 'http://proxy.example.org:8080';
// Enable debug mode (prints extra debugging messages)
//parsoidConfig.debug = true;
// Use the PHP preprocessor to expand templates via the MW API (default true)
//parsoidConfig.usePHPPreProcessor = false;
// Use selective serialization (default false)
parsoidConfig.useSelser = true;
// Allow cross-domain requests to the API (default '*')
// Sets Access-Control-Allow-Origin header
// disable:
//parsoidConfig.allowCORS = false;
// restrict:
//parsoidConfig.allowCORS = 'some.domain.org';
// Set to true for using the default performance metrics reporting to statsd
// If true, provide the statsd host/port values
/*
parsoidConfig.useDefaultPerformanceTimer = true;
parsoidConfig.txstatsdHost = 'statsd.domain.org';
parsoidConfig.txstatsdPort = 8125;
*/
// Alternatively, define performanceTimer as follows:
/*
parsoidConfig.performanceTimer = {
timing: function(metricName, time) { }, // do-something-with-it
count: function(metricName, value) { }, // do-something-with-it
};
*/
// How often should we emit a heap sample? Time in ms.
// This setting is only relevant if you have enabled
// performance monitoring either via the default metrics
// OR by defining your own performanceTimer properties
//parsoidConfig.heapUsageSampleInterval = 5 * 60 * 1000;
// Allow override of port/interface:
//parsoidConfig.serverPort = 8000;
//parsoidConfig.serverInterface = '127.0.0.1';
// The URL of your LintBridge API endpoint
//parsoidConfig.linterAPI = 'http://lintbridge.wmflabs.org/add';
// Require SSL certificates to be valid (default true)
// Set to false when using self-signed SSL certificates
//parsoidConfig.strictSSL = false;
// Use a different server for CSS style modules.
// Set to true to use bits.wikimedia.org, or to a string with the URI.
// Leaving it undefined (the default) will use the same URI as the MW API,
// changing api.php for load.php.
//parsoidConfig.modulesLoadURI = true;
// Suppress some warnings from the Mediawiki API
// (defaults to suppressing warnings which the Parsoid team knows to
// be harmless)
//parsoidConfig.suppressMwApiWarnings = /annoying warning|other warning/;
};
It seems that your
/etc/mediawiki/parsoid/settings.js
and or/usr/lib/parsoid/src/api/localsettings.js
is broken, and Parsoid is crashing as soon as it tries to look at yourparsoidConfig
. I recommend going through the instructions at https://www.mediawiki.org/wiki/Parsoid/Setup#Configuration carefully, and if you still have problems then please post excerpts of your settings files.