MediaWikiGids: Parsoid
Inhoud
Installeren Parsoid
Een (werkende) Parsoid service kan als develloper-installatie of op de normale manier geïnstalleerd worden.
bron: https://www.mediawiki.org/wiki/Parsoid/Developer_Setup zie ook: https://www.mediawiki.org/wiki/Parsoid/Setup
Ga naar de directory waar je Parsoid wilt installeren.cd /path/to/directory/parsoidParsoid kan in principe overall geïnstalleerd worden. De “standaard” locatie voor installatie van parsoid is
/opt/parsoidDownload Parsoid met behulp van git:
git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoidInstalleer Parsoid met behulp van nam:
npm install
Tijdens de installatie meldt npm welke 'fouten' (niet altijd fataal) zij tijdens het installeren is tegengekomen en hoeveel bestanden er zijn geïnstalleerd.
Configuratie Parsoid - config.yaml
De configuratie van Parsoid is eenvoudig, maar moet wel matchen met de configuratie van MediaWiki in LocalSetting.php. Tijdens de installatie is een voorbeeld configuratie-file geïnstalleerd; de inhoud kan aangepast worden.
Voorbeeld van een werkende multi-site configuratie van Parsoid in config.yaml:
# Configure Parsoid to point to your MediaWiki instances. mwApis: - # This is the only required parameter, # the URL of you MediaWiki API endpoint. uri: 'http://gids.wikiwerkers.nl/w/api.php' # The "domain" is used for communication with Visual Editor # and RESTBase. It defaults to the hostname portion of # the `uri` property above, but you can manually set it # to an arbitrary string. It must match the "domain" set # in $wgVirtualRestConfig. domain: 'localhost' # optional # To specify a proxy (or proxy headers) specific to this prefix # (which overrides defaultAPIProxyURI). Alternatively, set `proxy` # to `null` to override and force no proxying when a default proxy # has been set. #proxy: # uri: 'http://my.proxy:1234/' # headers: # optional # 'X-Forwarded-Proto': 'https' - # This is for the second wiki uri: 'http://test-te.wikiwerkers.nl/w/api.php' domain: 'localhost2' # arbitrair, maar moet verschillen van eerste wiki
Houdt er rekening mee dat de file config.yaml gevoelig is voor het aantal spaties voor het 'inspringen' van de tekst!
Configuratie Parsoid in LocalSettings.php
Eerste MediaWiki-website die Parsoid gaat gebruiken:
$wgVirtualRestConfig['modules']['parsoid'] = array( // URL to the Parsoid instance // Use port 8142 if you use the Debian package 'url' => 'http://localhost:8000', // Parsoid "domain", see below (optional) 'domain' => 'localhost', // Parsoid "prefix", see below (optional) 'prefix' => 'localhost' );
Tweede MediaWiki-website die Parsoid gaat gebruiken:
$wgVirtualRestConfig['modules']['parsoid'] = array( // URL to the Parsoid instance // Use port 8142 if you use the Debian package 'url' => 'http://test-te.wikiwerkers.nl:8000', // Parsoid "domain", see below (optional) 'domain' => 'localhost2', // Parsoid "prefix", see below (optional) 'prefix' => 'localhost2' );
Debugging Parsoid
VisualEditor blijft 'hangen' op een foutmelding (“Unknown error”) na het opslaan van een pagina (terwijl die pagina feitelijk wel wordt opgeslagen!). Je kunt dit voorkomen door de volgende regel in LocalSettings.php op te nemen (paardenmiddel...):
ini_set( 'display_errors', 0 );
Handmatige start en stop Parsoid
Tijdens het installeren en testen van de configuratie kan het nodig zijn de Parsoid-service handmatig de starten, stoppen en herstarten. Gebruik de volgende commando's (in de terminal).
Starten van Parsoid:cd /path/to/directory/parsoid node bin/server.js of (indien geen develloper setup): node server.jsStoppen van Parsoid (na handmatige start):
^c en dus niet: ^zControleren Parsoid of killen van proces:
pgrep node pkill node
Autostart van Parsoid op CentOS 6 server
Omdat Centos 6 (nog) geen gebruik maakt van systemd om scripts te starten bij de opstart van de server, is een eigen startup script nodig. CentOS 7 maakt wel gebruik van systemd.
Plaats van startup script:/etc/init.dNa plaatsen van script eenmalig uitvoeren:
chkconfig parsoid onNaam van het script:
parsoidInhoud parsoid - startup script
# parsoid start # # chkconfig: 345 86 14 # description: parsoid # ### BEGIN INIT INFO # Provides: $parsoid ### END INIT INFO # Source function library. . /etc/init.d/functions rc=0 # See how we were called. case "$1" in start) echo starting parsoid cd /path/to/directory/parsoid nohup node /path/to/directory/parsoid/bin/server.js > /dev/null 2>&1 & $0 status ;; stop) process=`ps -ef | grep 'node /path/to/directory/parsoid/bin/server.js'| grep -v grep | awk '{print $2}'` if [ "${process}" != '' ] then echo stopping parsoid killall -9 node fi $0 status ;; status) proc_find=`ps -ef | grep 'node /path/to/directory/parsoid/bin/server.js'| grep -v grep` if [ "${proc_find}" = '' ] then echo parsoid is not running else echo parsoid is running: ${proc_find} fi ;; restart|reload) cd "$CWD" $0 status $0 stop $0 start ;; *) echo $"Usage: $0 {start|stop|restart|reload|status}" exit 1 esac