MediaWiki에 VisualEditor 구성

MediaWiki의 편집 화면에서 시각화된 도구를 사용하기 위해서는 VisualEditor Extension을 사용 한다.

다운로드 사이트로부터 원하는 버전을 다운로드 한다.

cd  ${HOME_MEDIAWIKI}
cd  extensions
 
# wget https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_33-8c9c37e.tar.gz
tar -xzf VisualEditor-REL1_33-8c9c37e.tar.gz

cd  ..
vi  LocalSettings.php
    wfLoadExtension( 'VisualEditor' );
    $wgDefaultUserOptions['visualeditor-enable'] = 1;
    $wgHiddenPrefs[] = 'visualeditor-enable';
 
    $wgVirtualRestConfig['modules']['parsoid'] = array(
        'url' => 'http://127.0.0.1:8000',
        'domain' => 'www.jopenbusiness.com',
        'prefix' => 'www.jopenbusiness.com'
    );

VisualEditor 사용을 위해서 Parsoid를 구성 한다.

#--- Default 서비스 설치 위치 : /opt/parsoid/
git clone --recursive https://gerrit.wikimedia.org/r/mediawiki/services/parsoid/deploygit clone --recursive https://gerrit.wikimedia.org/r/mediawiki/services/parsoid/deploy
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

vi  config.yaml
    mwApis
    - # This is the only required parameter
      uri: 'http://www.jopenbusiness.com/mediawiki/api.php'
      domain: 'www.jopenbusiness.com'

vi  localsettings.js
    exports.setup = function(parsoidConfig) {
        parsoidConfig.setMwApi({
            uri: 'http://www.jopenbusiness.com/mediawiki/api.php',
            prefix : 'www.jopenbusiness.com',
            domain : 'www.jopenbusiness.com',
        });
    };

node bin/server.js
# systemctl restart parsoid

 

 

[MediaWiki] 로그인시 쿠키 비활성화 오류 발생시

 

MediaWiki에서 아래와 같은 오류가 발생한 경우 조치 방안 입니다.

 

오류 메시지

 

로그인 오류
오픈소스 비즈니스 컨설팅에서는 로그인을 위해 쿠키를 사용합니다. 쿠키가 비활성되어 있습니다. 쿠키 사용을 활성화한 다음 다시 시도하세요.

 

조치 방안

 

최신의 PHP (PHP 5.5+)에서는 OPCache가 디폴트로 설정 되어 있습니다. LocalSettings.php 파일에서 아래와 같이 변경해 주세요.

# $wgMemCachedServers = ~;                                           #— 삭제 합니다.
$wgSessionsInObjectCache = true;
$wgMainCacheType = CACHE_ANYTHING;

 

참고 문헌

  • https://www.mediawiki.org/wiki/Manual:$wgMainCacheType

 

 

 

오비컨

2018.03.05 ~ 2018.03.05, ver 0.01

 

 

MediaWiki 호출 구조

MediaWiki는 대표적인 위키 솔루션 입니다.
아래는 화면 출력을 위한 호출 구조 입니다.
MediaWiki 호출 구조
  • index.php
    • (new MediaWiki()).run();                                    #— includes/Wiki.php
  • includes/Wiki.php
    • checkMaxLag();
    • main();
      • performRequest();
        • initializeArticle();
      • ignore_user_abort();
      • context->getOutput()->output();                  #— 화면 표시
        • $sk = $this->getSkin();                    #— Skin 가져오기
        • $sk->outputPage();                        #— 화면 표시
    • fastcgi_finish_request();
    • triggerJobs();
    • restInpeace();
Skin 구조
  • skins/MonoBook.php                                             #— SkinTemplate.php를 상속 받음
  • includes/SkinTemplate.php
    • outputPage();
      • prepareQuickTemplate();
  • includes/OutputPage.php
    • headElement();                                            #— Head 표시
2017.11.27 ~ 2017.11.27, ver 0.01

[Google Analytics] MediaWiki에 추적코드 삽입

 

방안 1

Google Analytics Integration 확장 기능을 설치

cd /cloudnas/www/jopenbusiness/public_html/mediawiki/extensions
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/googleAnalytics.git
#— googleAnalytics/ 폴더가 생성됨

vi /cloudnas/www/jopenbusiness/public_html/mediawiki/LocalSettings.php

#— 맨 하단에 아래 라인 추가
require_once “$IP/extensions/googleAnalytics/googleAnalytics.php”;
$wgGoogleAnalyticsAccount = “UA-????????-1”;
$wgGoogleAnalyticsIgnoreSysops = false;
$wgGoogleAnalyticsIgnoreBots = false;
$wgGoogleAnalyticsAddASAC = false;

방안 2

vi /cloudnas/www/jopenbusiness/public_html/mediawiki/index.php

  1. — 맨 하단에 아래 라인 추가
    <script>
    (function(i,s,o,g,r,a,m){i[‘GoogleAnalyticsObject’]=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,’script’,’//www.google-analytics.com/analytics.js’,’ga’);

ga(‘create’, ‘UA-????????-1’, ‘auto’);
ga(‘send’, ‘pageview’);

</script>

 

파일

 

 

 

MediaWiki에 WYSIWYG-CKeditor 설치

  • WYSIWYG-CKeditor 설치
cd /cloudnas/install
wget https://github.com/Mediawiki-wysiwyg/WYSIWYG-CKeditor/archive/CKeditor_v4.zip
mv CKeditor_v4 CKeditor_v4.zip
unzip CKeditor_v4.zip
chown -R apache:apache WYSIWYG-CKeditor-CKeditor_v4

cd WYSIWYG-CKeditor-CKeditor_v4
mv * /cloudnas/www/html/mediawiki/extensions
  • vi /cloudnas/www/html/mediawiki/LocalSettings.php
require_once( "$IP/extensions/WYSIWYG/WYSIWYG.php" );
$wgGroupPermissions['registered_users']['wysiwyg']=true;
$wgGroupPermissions['*']['wysiwyg'] = true;          //Everyone can use (if can edit)...
$wgDefaultUserOptions['cke_show'] = 'richeditor';    //Enable CKEditor
$wgDefaultUserOptions['riched_use_toggle'] = false;  //Editor can toggle CKEditor/WikiText
$wgDefaultUserOptions['riched_start_disabled'] = false; //Important!!! else bug...
$wgDefaultUserOptions['riched_toggle_remember_state'] = true; //working/bug?
$wgDefaultUserOptions['riched_use_popup'] = false;   //Deprecated

$wgFCKEditorExcludedNamespaces[] = NS_MEDIAWIKI;
$wgFCKEditorExcludedNamespaces[] = NS_TEMPLATE;

require_once( "$IP/extensions/WikiEditor/WikiEditor.php" );

$wgDefaultUserOptions['usebetatoolbar'] = 1;
$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;
$wgDefaultUserOptions['wikieditor-preview'] = 0;
$wgDefaultUserOptions['wikieditor-publish'] = 0;
$wgLocalisationUpdateDirectory = "$IP/cache";

### enableSemantics( );
### include_once( "$IP/extensions/SemanticForms/SemanticForms.php" );

### $wgFCKEditorExcludedNamespaces[] = SF_NS_FORM;
### $wgFCKEditorExcludedNamespaces[] = SMW_NS_PROPERTY;

 

  • 서비스 재기동
service httpd restart


 

파일

 

 

 
 
 
 

Mediawiki 업그레이드 (from 1.20.5 to 1.23.3)

 
  • 전제 사항
  • MediaWiki가 설치된 폴더 : /cloudnas/www/html/mediawiki/
  • 설치 작업용 임시 폴더 : /cloudnas/install/
  • 백업 폴더 : /cloudnas/backup/
  • MediaWiki 1.23.3 설치 요구 사항
  • MediaWiki 버전 확인
  • Mediawiki 백업
service httpd stop
cd /cloudnas/www/html
tar cvf /cloudnas/backup/mediawiki_1205.tar mediawiki
/usr/bin/mysqldump -umediawiki -pdemo1234 mediawikidb > /cloudnas/backup/mediawiki_1205.sql
service httpd start
  • Mediawiki Upgrade
service httpd stop
cd /cloudnas/install
wget http://releases.wikimedia.org/mediawiki/1.23/mediawiki-1.23.3.tar.gz
tar xvfz mediawiki-1.23.3.tar.gz
mv mediawiki-1.23.3 mediawiki
chown -R apache:apache mediawiki
tar cvf mediawiki.tar mediawiki
cd /cloudnas/www/html
tar xvf /cloudnas/install/mediawiki.tar
cd mediawiki/maintenance
php update.php
service httpd start
  • MediaWiki 버전 확인

 

파일