본문 바로가기
컴퓨터/인터넷

MediaWiki에 VisualEditor 설치하기

by 신규하 2020. 1. 11.

어쩌다 미디어위키에 Visual Editor를 설치 할 일이 생겨서 설치 하면서 고생을 많이 해서 정리해 둡니다 ㅜ.ㅜ.

Visual Editor Extension 설치 하기

https://www.mediawiki.org/wiki/Extension:VisualEditor

우선 이 사이트에 방문해서 아무런 생각없이 사이트에서 git으로 설치 하라는 대로 설치하고 띄워 봤더니.. 하얀 화면만 나오고 아무것도 없이 먹통이 되더군요 -_-;;

뭐가 잘 못 된지도 모르고 하얀 먹통이라서 뭐가 잘 못 된지도 모르는 채 하루를 날려 버렸습니다. 😨

결국 알아 낸것이 버전에 맞는 extension을 설치해야 하는 것이였습니다..

아래 url에 가서 내가 설치한 mediawiki와 맞는 버전을 찾아서 받아서 설치해야 합니다.

https://www.mediawiki.org/wiki/Special:ExtensionDistributor/VisualEditor

wget https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_33-f64e411.tar.gz
tar -xzf VisualEditor-REL1_33-f64e411.tar.gz -C /var/www/mediawiki/extensions

LocalSettings.php 파일에 아래 내용을 추가해 줍니다.

wfLoadExtension( 'VisualEditor' ); 
$wgDefaultUserOptions['visualeditor-enable'] = 1; 
$wgHiddenPrefs[] = 'visualeditor-enable'; 

$wgVirtualRestConfig['modules']['parsoid'] = array( 
    'url' => 'http://mydomain.com:8000', 
);

Parsoid 설치하기

Visual Editor는 확장만 설치해서 동작하지 않고 parsoid를도 같이 설치를 해 줘야 합니다.
먼저 paroid를 사용하려면 node가 설치가 되어 있어야 합니다. 설치가 되어 있지 않다면 설치하시면 됩니다.

$ mkdir /opt/parsoid
$ cd /opt/parsoid
$ git clone https://gerrit.wikimedia.org/r/mediawiki/services/parsoid
$ cd parsoid
$ npm install
$ cp config.example.yaml config.yaml
$ cp localsettings.example.js localsettings.js

먼저 api.php의 주소를 확인 합니다. 설치된 미디어위키의 주소에서 api.php파일을 띄워서 아래와 같은 화면이 나오면 됩니다.

config.yaml에서 mwApis 부분을 아래와 같이 수정해 줍니다.

mwApis: 
- # This is the only required parameter, 
  # the URL of you MediaWiki API endpoint. 
  uri: 'http://mydomain.com/api.php'

그리고, localsettings.js파일도 아래와 같이 편집해 줍니다. domain과 prefix라는게 있는 옵션이라서 생략해도 됩니다.

'use strict'; 

exports.setup = function(parsoidConfig) { 
    parsoidConfig.setMwApi({ 
        uri: 'http://mydomain.com/api.php', 
    }); 
};

위에까지 설정이 완료 되었으면, 실행해 봅니다.

$ npm start

혹시 방화벽을 사용중이라면 방화벽을 풀어주는 것도 잊지 말아 주세요.

이제 세팅이 다 되었으니, 미디어위키에서 잘 동작하는지 테스트 해 보시면 됩니다.

pm2로 parsoid를 서비스형태로 설정해 주기..

먼저 pm2를 설치해 줍니다.

$ npm install -g pm2

그리고, parsoid가 설치된 폴더로 이동해서 실행해 줍니다.

$ cd /opt/parsoid
$ pm2 start --name parsoid npm -- start

다음부터 pm2에 방금 등록한 앱을 저장해 주고 서비스로 등록해 줍니다.

$ pm2 save
$ pm2 startup

startup을 했을경우 root권한이 아닐 경우, 아래와 같은 메시지가 나옵니다.

[PM2] Init System found: systemd 
[PM2] To setup the Startup Script, copy/paste the following command: 
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u USERNAME --hp /home/USERNAME

마지막 sudo가 있는 내용을 복사해서 붙여넣기 해서 실행해 주면 다음부터 컴퓨터를 껐다키면 알아서 parsoid를 실행해 주게 됩니다.

댓글10

  • BH 2020.01.15 16:05

    도움이 많이 되었습니다. 감사합니다~
    답글

  • 진한쌤 2020.02.29 20:09 신고

    안녕하세요; 계속 안되서 포멧하고 똑같이 따라해봤는데;; npm start에서 계속 에러가 뜹니다; 물론 방화벽은 잠시 꺼뒀구요;;

    아래와 같은 에러가 뜨네요;; 해결할 방법을 혹시 알고 계실까요;;ㅜㅜ
    npm ERR! Linux 5.3.0-40-generic
    npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "start"
    npm ERR! node v8.10.0
    npm ERR! npm v3.5.2
    npm ERR! file sh
    npm ERR! code ELIFECYCLE
    npm ERR! errno ENOENT
    npm ERR! syscall spawn
    npm ERR! parsoid@0.11.0 start: `service-runner`
    이하 생략
    답글

    • 신규하 2020.03.02 18:14

      혹시, npm install을 실행 하셨나요?
      필요한 패키지들이 설치 되지 않은거 같습니다.
      npm install해서 설치에 오류가 난다면, npm의 권한 문제로 패키지가 설치안 되는 경우도 있습니다.
      > sudo npm install
      으로 시도해 보세요.

    • 진한쌤 2020.03.25 22:36 신고

      우분투에선 node나 npm 설치를 따로 안하더라구요! 메뉴얼대로 따라가면 parsoid가 간단하게 설치되고 작동하네요! 심지어 pm2 없이도 자동 실행되게끔!

  • PRASEOD 2020.03.30 03:01

    pm2로 실행하려니 ecosystem.config.js 가 없다면서 실행이 안되네요...
    답글

    • 신규하 2020.03.31 01:23

      pm2를 설정하시면서 sudo 권한으로 실행을 하지 않으신것 같습니다.
      sudo 권한을 확인 해 주세요.

  • Dillan 2020.04.14 11:23

    규하님, restbase는 최신버전 visualeidtor에는 더 이상 필요없는건가요?

    감사합니다
    답글

    • 규하 2020.04.17 17:05

      그런거 같네요. 제가 설치 할 때는 restbase를 따로 설정하진 않았습니다.

  • Dillan 2020.04.19 21:42

    그렇군요. 현재 구글클라우드에 우부투18 + 미디어위키 설치하는 중입니다. 저 같은 일반인도 접근하기 좋게 비주얼 에디터 설치중인데 수십번을 반복해도 안되어서요... ㅠㅠ 인터넷을 찾다찾다 보니 어떤분 글에 restbase를 설치-설정글을 남겨두어서 그것까지 해보아도 안되어 질문드려보았습니다. 답변 감사합니다.
    답글