"제로원:시각편집기"의 두 판 사이의 차이
통진고위키
(systemctl start parsoid 오류 해결) |
잔글 (syntaxhighlight 오류 해결) |
||
(같은 사용자의 중간 판 2개는 보이지 않습니다) | |||
11번째 줄: | 11번째 줄: | ||
[[mediawikiwiki:Parsoid|Parsoid]](파르소이드?)를 설치한다. Parsoid는 위키텍스트와 HTML을 서로 변환하는 프로그램이다. 비주얼에디터가 이 프로그램을 기반으로 작동한다. 미디어위키 문서에서는 apt 등 패키지 매니저를 통해 Parsoid를 설치하라고 나와있지만 그러면 전혀 작동이 안 된다. 통진고위키는 git에서 클론해서 설치했다. | [[mediawikiwiki:Parsoid|Parsoid]](파르소이드?)를 설치한다. Parsoid는 위키텍스트와 HTML을 서로 변환하는 프로그램이다. 비주얼에디터가 이 프로그램을 기반으로 작동한다. 미디어위키 문서에서는 apt 등 패키지 매니저를 통해 Parsoid를 설치하라고 나와있지만 그러면 전혀 작동이 안 된다. 통진고위키는 git에서 클론해서 설치했다. | ||
#의존사항 설치(node, npm, git). 추가로 vim과 같은 텍스트 편집기도 필요하다.<syntaxhighlight lang="shell"> | #의존사항 설치(node, npm, git). 추가로 vim과 같은 텍스트 편집기도 필요하다.<syntaxhighlight lang="shell-session"> | ||
apt install node npm git | $ apt install node npm git | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#git으로 Parsoid를 다운로드하고 Parsoid의 의존성 패키지를 설치한다.<syntaxhighlight lang="shell"> | #git으로 Parsoid를 다운로드하고 Parsoid의 의존성 패키지를 설치한다.<syntaxhighlight lang="shell-session"> | ||
mkdir -p /opt/parsoid | $ mkdir -p /opt/parsoid | ||
git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid /opt/parsoid | $ git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid /opt/parsoid | ||
cd /opt/parsoid | $ cd /opt/parsoid | ||
npm install | $ npm install | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#설정 파일을 작성한다.<syntaxhighlight lang="shell"> | #설정 파일을 작성한다.<syntaxhighlight lang="shell-session"> | ||
cp localsettings.example.js localsettings.js | $ cp localsettings.example.js localsettings.js | ||
</syntaxhighlight>위와 같이 복사한 후, <code>localsettings.js</code>를 열어서 다음과 같이 편집한다.<syntaxhighlight lang="javascript"> | </syntaxhighlight>위와 같이 복사한 후, <code>localsettings.js</code>를 열어서 다음과 같이 편집한다.<syntaxhighlight lang="javascript"> | ||
exports.setup = function(parsoidConfig) { | exports.setup = function(parsoidConfig) { | ||
parsoidConfig.setMwApi({ | parsoidConfig.setMwApi({ | ||
// 미디어위키의 api.php 주소 | // 미디어위키의 api.php 주소 | ||
uri: 'http://tjhswiki.com/w/api.php', | uri: 'http://wiki.tjhswiki.com/w/api.php', | ||
}); | }); | ||
}; | }; | ||
</syntaxhighlight>사실 미디어위키 문서를 읽어보면 아래의 <code>config.yaml</code>만 있으면 되는 것 같지만 다른 대부분의 도움말에서는 둘 다 설정한다.<syntaxhighlight lang="shell"> | </syntaxhighlight>사실 미디어위키 문서를 읽어보면 아래의 <code>config.yaml</code>만 있으면 되는 것 같지만 다른 대부분의 도움말에서는 둘 다 설정한다.<syntaxhighlight lang="shell-session"> | ||
cp config.example.yaml config.yaml | $ cp config.example.yaml config.yaml | ||
</syntaxhighlight>위와 같이 복사한 후, <code>config.yaml</code>를 열어서 다음과 같이 편집한다.<syntaxhighlight lang="yaml"> | </syntaxhighlight>위와 같이 복사한 후, <code>config.yaml</code>를 열어서 다음과 같이 편집한다.<syntaxhighlight lang="yaml"> | ||
mwApis: | mwApis: | ||
- # 미디어위키 api.php의 주소 | - # 미디어위키 api.php의 주소 | ||
uri: 'http://tjhswiki.com/w/api.php' | uri: 'http://wiki.tjhswiki.com/w/api.php' | ||
# 사이트의 도메인 | # 사이트의 도메인 | ||
domain: 'tjhswiki.com' | domain: 'wiki.tjhswiki.com' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
#서비스를 생성한다. 시각편집기가 언제든 Parsoid를 이용할 수 있으려면 항상 실행되고 있어야 된다.<syntaxhighlight lang="shell"> | #서비스를 생성한다. 시각편집기가 언제든 Parsoid를 이용할 수 있으려면 항상 실행되고 있어야 된다.<syntaxhighlight lang="shell-session"> | ||
cd /etc/systemd/system/ | $ cd /etc/systemd/system/ | ||
</syntaxhighlight><code>/etc/systemd/system/</code>에서 <code>parsoid.service</code> 파일을 만들고 편집한다. 이 파일이 곧 서비스가 된다. 파일 이름은 사실 자유롭게 해도 되지만 파일 이름이 곧 서비스 이름이 되는 것만 기억하라.<syntaxhighlight> | </syntaxhighlight><code>/etc/systemd/system/</code>에서 <code>parsoid.service</code> 파일을 만들고 편집한다. 이 파일이 곧 서비스가 된다. 파일 이름은 사실 자유롭게 해도 되지만 파일 이름이 곧 서비스 이름이 되는 것만 기억하라.<syntaxhighlight lang="text"> | ||
[Unit] | [Unit] | ||
Description=Mediawiki Parsoid web service on node.js | Description=Mediawiki Parsoid web service on node.js | ||
60번째 줄: | 60번째 줄: | ||
PrivateTmp=true | PrivateTmp=true | ||
StandardOutput=syslog | StandardOutput=syslog | ||
</syntaxhighlight><ref>https://www.howtoforge.com/tutorial/how-to-install-visualeditor-for-mediawiki-on-centos-7/<nowiki/>의 스크립트를 수정함</ref>서비스를 시작하고 부팅할 때 시작하도록 등록한다.<syntaxhighlight lang="shell"> | </syntaxhighlight><ref>https://www.howtoforge.com/tutorial/how-to-install-visualeditor-for-mediawiki-on-centos-7/<nowiki/>의 스크립트를 수정함</ref>서비스를 시작하고 부팅할 때 시작하도록 등록한다.<syntaxhighlight lang="shell-session"> | ||
systemctl daemon-reload | $ systemctl daemon-reload | ||
systemctl start parsoid | $ systemctl start parsoid | ||
systemctl enable parsoid | $ systemctl enable parsoid | ||
</syntaxhighlight>다음 명령어로 서비스가 잘 돌아가고 있는지 확인할 수 있다. <code>Active: active (running)</code>이라는 문구가 있으면 잘 돌아가고 있는 것이다.<syntaxhighlight lang="shell"> | </syntaxhighlight>다음 명령어로 서비스가 잘 돌아가고 있는지 확인할 수 있다. <code>Active: active (running)</code>이라는 문구가 있으면 잘 돌아가고 있는 것이다.<syntaxhighlight lang="shell-session"> | ||
systemctl status parsoid.service | $ systemctl status parsoid.service | ||
</syntaxhighlight>다음 명령어로 인터넷 포트도 확인해봐라. 8000번 포트가 열려있으면 잘 돌아가고 있는 것이다.<syntaxhighlight lang="shell"> | </syntaxhighlight>다음 명령어로 인터넷 포트도 확인해봐라. 8000번 포트가 열려있으면 잘 돌아가고 있는 것이다.<syntaxhighlight lang="shell-session"> | ||
netstat -plnt | $ netstat -plnt | ||
</syntaxhighlight> | </syntaxhighlight> | ||
80번째 줄: | 80번째 줄: | ||
// Parsoid 설정 | // Parsoid 설정 | ||
$wgVirtualRestConfig['modules']['parsoid'] = array( | $wgVirtualRestConfig['modules']['parsoid'] = array( | ||
'url' => 'http://tjhswiki.com:8000' | 'url' => 'http://wiki.tjhswiki.com:8000' | ||
); | ); | ||
</syntaxhighlight | </syntaxhighlight> | ||
== 오류 및 해결법 == | ==오류 및 해결법== | ||
=== "systemctl start parsoid" 실행할 때 오류메시지 === | ==="systemctl start parsoid" 실행할 때 오류메시지=== | ||
<syntaxhighlight lang="shell-session"> | <syntaxhighlight lang="shell-session"> | ||
$ 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. | Job for parsoid.service failed because a configured resource limit was exceeded. See "systemctl status parsoid.service" and "journalctl -xe" for details. | ||
</syntaxhighlight>서비스를 시작하려고 할 때 간혹 저런 메시지가 뜨는 경우가 있다. 그럴 땐 /var/tmp 디렉토리를 만들어주면 해결된다.<references /> | </syntaxhighlight>서비스를 시작하려고 할 때 간혹 저런 메시지가 뜨는 경우가 있다. 그럴 땐 <code>/var/tmp</code> 디렉토리를 만들어주면 해결된다. | ||
==각주== | |||
<references /> |
2020년 4월 26일 (일) 21:56 기준 최신판
시각편집기에 관련하여 질문이 있거나 오류가 발생하면 토론 문서에 써놓으십시오. 친절한 편집자가 그에 관한 답을 달아 줄 것입니다. 유용한 답은 본 문서에 기재될 수 있습니다. |
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
디렉토리를 만들어주면 해결된다.