제로원:시각편집기
통진고위키
시각편집기에 관련하여 질문이 있거나 오류가 발생하면 토론 문서에 써놓으십시오. 친절한 편집자가 그에 관한 답을 달아 줄 것입니다. 유용한 답은 본 문서에 기재될 수 있습니다. |
ZERO-ONE 포털 |
---|
시각편집기는 미디어위키 편집을 쉽고 편하게 하기 위해 개발된 편집기이다. 안중원이 설치하느라 애먹었다.
- https://www.mediawiki.org/wiki/VisualEditor(영어): 미디어위키의 문서
- https://www.howtoforge.com/tutorial/how-to-install-visualeditor-for-mediawiki-on-centos-7/: 최종적으로 성공한 방법 - 이것도 똑같이 해서는 문제가 있었다.
설치 방법
Parsoid 설치
Parsoid(파르소이드?)를 설치한다. Parsoid는 위키텍스트와 HTML을 서로 변환하는 프로그램이다. 비주얼에디터가 이 프로그램을 기반으로 작동한다. 미디어위키 문서에서는 apt 등 패키지 매니저를 통해 Parsoid를 설치하라고 나와있지만 그러면 전혀 작동이 안 된다. 통진고위키는 git에서 클론해서 설치했다.
- 의존사항 설치(node, npm, git). 추가로 vim과 같은 텍스트 편집기도 필요하다.
$ apt install node npm git
- git으로 Parsoid를 다운로드하고 Parsoid의 의존성 패키지를 설치한다.
$ mkdir -p /opt/parsoid $ git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid /opt/parsoid $ cd /opt/parsoid $ npm install
- 설정 파일을 작성한다.위와 같이 복사한 후,
$ cp localsettings.example.js localsettings.js
localsettings.js
를 열어서 다음과 같이 편집한다.사실 미디어위키 문서를 읽어보면 아래의exports.setup = function(parsoidConfig) { parsoidConfig.setMwApi({ // 미디어위키의 api.php 주소 uri: 'http://wiki.tjhswiki.com/w/api.php', }); };
config.yaml
만 있으면 되는 것 같지만 다른 대부분의 도움말에서는 둘 다 설정한다.위와 같이 복사한 후,$ cp config.example.yaml config.yaml
config.yaml
를 열어서 다음과 같이 편집한다.mwApis: - # 미디어위키 api.php의 주소 uri: 'http://wiki.tjhswiki.com/w/api.php' # 사이트의 도메인 domain: 'wiki.tjhswiki.com'
- 서비스를 생성한다. 시각편집기가 언제든 Parsoid를 이용할 수 있으려면 항상 실행되고 있어야 된다.
$ cd /etc/systemd/system/
/etc/systemd/system/
에서parsoid.service
파일을 만들고 편집한다. 이 파일이 곧 서비스가 된다. 파일 이름은 사실 자유롭게 해도 되지만 파일 이름이 곧 서비스 이름이 되는 것만 기억하라.[1]서비스를 시작하고 부팅할 때 시작하도록 등록한다.[Unit] Description=Mediawiki Parsoid web service on node.js Documentation=http://www.mediawiki.org/wiki/Parsoid Wants=local-fs.target network.target After=local-fs.target network.target [Install] WantedBy=multi-user.target [Service] Type=simple User=root Group=root WorkingDirectory=/opt/parsoid ExecStart=/usr/bin/npm start KillMode=process Restart=on-success PrivateTmp=true StandardOutput=syslog
다음 명령어로 서비스가 잘 돌아가고 있는지 확인할 수 있다.$ systemctl daemon-reload $ systemctl start parsoid $ systemctl enable parsoid
Active: active (running)
이라는 문구가 있으면 잘 돌아가고 있는 것이다.다음 명령어로 인터넷 포트도 확인해봐라. 8000번 포트가 열려있으면 잘 돌아가고 있는 것이다.$ systemctl status parsoid.service
$ netstat -plnt
VisualEditor 확장기능 설치
다른 확장기능 설치할 때와 마찬가지로, 확장기능 배포 페이지에서 압축파일을 받아서
/var/www/html/w/extensions/
경로에 업로드하고 압축을 푼다. 그 뒤 LocalSettings.php
에 다음 내용을 추가한다.wfLoadExtension( 'VisualEditor' );
// 선택 사항
# $wgDefaultUserOptions['visualeditor-enable'] = 1;
# $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
// Parsoid 설정
$wgVirtualRestConfig['modules']['parsoid'] = array(
'url' => 'http://wiki.tjhswiki.com:8000'
);
오류 및 해결법
"systemctl start parsoid" 실행할 때 오류메시지
$ systemctl start parsoid
Job for parsoid.service failed because a configured resource limit was exceeded. See "systemctl status parsoid.service" and "journalctl -xe" for details.
/var/tmp
디렉토리를 만들어주면 해결된다.