"제로원:시각편집기"의 두 판 사이의 차이

통진고위키
잔글
잔글 (syntaxhighlight 오류 해결)
 
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) {
29번째 줄: 29번째 줄:
           });
           });
  };
  };
</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:
38번째 줄: 38번째 줄:
           domain: 'wiki.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>



2020년 4월 26일 (일) 21:56 기준 최신판

시각편집기에 관련하여 질문이 있거나 오류가 발생하면 토론 문서에 써놓으십시오. 친절한 편집자가 그에 관한 답을 달아 줄 것입니다. 유용한 답은 본 문서에 기재될 수 있습니다.
ZERO-ONE 포털
제로원.png

시각편집기는 미디어위키 편집을 쉽고 편하게 하기 위해 개발된 편집기이다. 안중원이 설치하느라 애먹었다.

설치 방법

Parsoid 설치

Parsoid(파르소이드?)를 설치한다. Parsoid는 위키텍스트와 HTML을 서로 변환하는 프로그램이다. 비주얼에디터가 이 프로그램을 기반으로 작동한다. 미디어위키 문서에서는 apt 등 패키지 매니저를 통해 Parsoid를 설치하라고 나와있지만 그러면 전혀 작동이 안 된다. 통진고위키는 git에서 클론해서 설치했다.

  1. 의존사항 설치(node, npm, git). 추가로 vim과 같은 텍스트 편집기도 필요하다.
    $ apt install node npm git
    
  2. 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
    
  3. 설정 파일을 작성한다.
    $ 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'
    
  4. 서비스를 생성한다. 시각편집기가 언제든 Parsoid를 이용할 수 있으려면 항상 실행되고 있어야 된다.
    $ cd /etc/systemd/system/
    
    /etc/systemd/system/에서 parsoid.service 파일을 만들고 편집한다. 이 파일이 곧 서비스가 된다. 파일 이름은 사실 자유롭게 해도 되지만 파일 이름이 곧 서비스 이름이 되는 것만 기억하라.
    [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
    
    [1]서비스를 시작하고 부팅할 때 시작하도록 등록한다.
    $ systemctl daemon-reload
    $ systemctl start parsoid
    $ systemctl enable parsoid
    
    다음 명령어로 서비스가 잘 돌아가고 있는지 확인할 수 있다. Active: active (running)이라는 문구가 있으면 잘 돌아가고 있는 것이다.
    $ systemctl status parsoid.service
    
    다음 명령어로 인터넷 포트도 확인해봐라. 8000번 포트가 열려있으면 잘 돌아가고 있는 것이다.
    $ 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 디렉토리를 만들어주면 해결된다.