미디어위키(MediaWiki)는 자유와 공개-소스 위키 엔진입니다. 이것은 2002년에 위키피디아에서 사용하기 위해 개발되었고, 2003년에 "미디어위키"라는 이름을 제공했습니다. 위키피디아와 위키사전, 위키미디어 커먼즈 및 위키데이터를 포함한 거의 모든 다른 위키미디어 사이트에서 여전히 사용됩니다; 이들 사이트는 미디어위키에 필요한 요구사항의 상당 부분을 계속해서 정의합니다. 미디어위키는 원래 Magnus Manske에 의해 개발되었고 Lee Daniel Crocker에 의해 개선되었습니다. 그의 개발은 그 후 위키미디어 재단에 의해 통합되었습니다.
미디어위키는 PHP 프로그래밍 언어로 작성되었고 모든 텍스트 내용을 데이터베이스에 저장합니다. 이 소프트웨어는 테라바이트의 컨텐츠와 초당 수십만 개의 히트를 가질 수 있는 대규모 프로젝트를 효율적으로 처리하기 위해 최적화되었습니다. 위키피디아는 세계에서 가장 큰 웹 사이트 중 하나이므로, 캐싱 및 데이터베이스 복제의 중복 계층을 통해 확장성을 달성하는 것이 개발자에 의해 중요한 관심사였습니다. 미디어위키의 또 다른 주요 측면은 국제화입니다; 그의 인터페이스는 300개 이상의 언어로 제공됩니다. 이 소프트웨어는 900가지 이상의 구성 설정 및 1,900가지 이상의 확장을 제공하므로 다양한 기능을 추가하거나 변경할 수 있습니다.
위키미디어 사이트에서의 사용 외에도, 미디어위키는 웹사이트 Fandom 및 wikiHow, 및 Intellipedia 및 Diplopedia와 같은 주요 내부 설치를 포함하는, 수천 개의 웹 사이트, 공개 및 비공개에서 지식 관리 및 컨텐츠 관리 시스템으로 사용되어 왔습니다.
Installation
Prerequisites
- PHP 설치하기.
- MariaDB 설치하기. 미디어위키에서 사용할 데이트베이스를 만듭니다:
- sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS `wikidb` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
MariaDB [(none)]> use mysql;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wikidb.* TO wikiuser@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit;
Manual install
- cd /var/www/html
- sudo wget https://releases.wikimedia.org/mediawiki/1.31/mediawiki-1.31.1.tar.gz
- sudo tar zxvf mediawiki-1.31.1.tar.gz
- sudo mv mediawiki-1.31.1 w
- sudo rm mediawiki-1.31.1.tar.gz
Setup
- 사용자 설치로 /var/www/html/w에 파일들이 존재합니다.
- 웹 브라우저로 http://localhost/w로 접근해서 다음 과정을 수행합니다.
- Page "Welcome to MediaWiki!":
- "Language"는 전부 "English"로 선택합니다.
- "Environmental checks"에서 설치해야 할 프로그램을 볼 수 있습니다.
- "Connect to database" 에서는
- "Database name"는 "wikidb"
- "Database username"는 "wikiuser"
- "Database password"는 "wikiuserpassword"
- Page "Database settings":
- Database account for web access: 선택 해제하고, MariaDB에서 위키에 대한 데이터베이스를 만들 때, 같이 만든 계정과 암호를 입력합니다.
- Page "Name"
- "Name of wiki"은 반드시 입력해야 합니다.
- 위키 Administrator accoun의 id와 password를 반드시 입력해야 합니다.
- I'm bored already, just install the wiki. Page "Install"로 이동됩니다.
- Ask me more questions. 위의 것을 선택하면, 나중에 더 귀찮은 작업을 해야 합니다. 이것을 선택해 주세요.
- Page "Options"
- "User rights profile:"은 "Account creation required" 선택합니다.
- "Copyright and license:"은 "Creative Common Attribution-NonCommercial-ShareAlike" 선택합니다.
- "Email settings": 선택해제 (나중에 추가할 수 있습니다)
- "Skins": 기본값으로 진행합니다.
- "Extensions"
- "Special pages": 모두 선택합니다.
- "Editors": 모두 선택합니다.
- "Parser hooks": 모두 선택합니다.
- "Media handlers": 모두 선택합니다.
- "Spam prevention": 모두 선택합니다.
- "API": 모두 선택합니다.
- "Other": LocalisationUpdate, OATHAuth를 제외하고 나머지를 선택합니다.
- "Images and file uploads": 활성화하고, 나머지는 기본값으로 둡니다.
- "Advanced configuration": 기본값으로 둡니다.
- Page "Install": Continue를 누릅니다.
- LocalSettings.php를 저장하고, /var/www/html/w/ 아래로 옮깁니다.
- 웹브라우저를 열어서 http://localhost/w/ 를 입력하면 설치된 미디어위키를 볼 수 있습니다.
External Programs
미디어위키를 운영함에 있어, 한글 검색이 잘 되지 않는 문제가 있습니다. 이것을 그나마 개선하기 위해, CirrusSearch 확장을 이용할 수 있으며, Elasticsearch를 기반으로 합니다.
다른 한편으로, 미디어위키에서 수식을 이용하기 위해, Math 확장을 이용할 수 있으며, 서비스의 품질을 개선하기 위해, 로컬 컴퓨터에 RESTBase, Mathoid를 설치해야 합니다. 게다가, RESTBase는 데이터의 양이 지속적으로 증가하기 때문에, Apache Cassandra를 벡엔드로 이용할 수 있습니다.
한편, 두 외부 프로그램, Elasticsearch, Apache Cassandra는 자바를 기반으로 합니다. 2022년 9월 당시, Elasticsearch는 6.8 버전을 사용하고, Apache Cassandra는 3.11 버전을 이용하고 있으며, 둘 모두 동작하기 위해 자바 1.8을 이용해야 합니다. 데비안 11에서는 자바 1.8 버전을 패키지로 제공하지 않기 때문에 오라클 자바를 직접 설치해서 이용할 수 있습니다.
역시, 2022년 9월에 Elasticsearch는 7.10.2로 업그레이드가 진행되고 있지만, Apache Cassandra에 대한 업그레이드는 아직 논의되지 않고 있습니다. 만약 Apache Cassandra가 4.0.x 버전을 지원하기 시작하면, 자바 11을 이용할 수 있을 것으로 기대됩니다.
다른 한편으로, 미디어위키를 운영하기 위해 필수적인 PHP는 데비안 11에서 8.x를 지원하지 않기 때문에, 2022년 9월 7.4 버전으로 업그레이드가 진행 중이고, 이것이 끝나면, 8.x 버전을 같이 이용할 수 있을 것으로 기대됩니다. 7.2와 7.4버전을 동시에 지원할 수는 없습니다.
2023년 1월 기준, 당년에 출시 예정인 데비안 12는 자바 17만을 지원하고, 파이썬은 3.x만을 지원합니다. 이러다 보니, Apache Cassandra를 설치하기 위해, 자바 외에 파이썬 마저 2.7버전을 별도로 설치해야 합니다. 반면에, Elasticsearch 7.10.2 버전은 자바 17 버전에서도 잘 작동합니다. 앞으로 RESTBase에서 Apache Cassandra 4.x를 지원하면, 자바 11은 Oracle jre 다운로드 페이지에서 제공하는 타르볼을 별도로 설치해야 할 것으로 보이고, 반면에 python 2.7은 별도로 설치할 필요 없이 데비안 12에서 제공하는 3.x 버전에서 동작합니다.
Apache Cassandra 4.x에 대한 지원 계획은 이미 논의 중입니다.
카산드라 4.x는 미디어위키 개발자 버전 (1.41)에서 작동합니다. 단지 RESTBase 서비스 백엔드로만 사용 중이고, 자바-8과 자바-11에서 작동합니다.
비-공개 위키로 전환할 경우에, RESTBase가 동작하지 않을 수 있습니다. 이때, localhost에 대한 SITEINFO를 알 수 없다는 메시지가 출력되고, 이후에는 설정을 아무리 바꾸어도 서비스가 연결되지 않습니다. 시스템 재시작으로 이를 벗어날 수 있습니다. |
Backup
백업을 적당한 주기로 하다보면, 어떤 내용을 백업했는지 기억을 못할 경우가 있습니다. 이를 방지하기 위해서 백업을 할 때에는 파일 이름에 미디어위키 판번호와 백업한 날짜를 같이 적어주는 것이 좋습니다.
Database
먼저 백업할 동안에 잠시 위키를 읽기만 가능하도록 LocalSettings.php를 바꾸어 주어야 합니다.
$wgReadOnly = 'Dumping Database, Access will be restored shortly';
다음과 같이 간단히 백업할 수 있습니다.
- mysqldump -u root -p wikidb > wikidb.sql
백업과 함께 압축을 하고 싶다면, 다음과 같이 합니다.
- mysqldump -u root -p wikidb | gzip > wikidb.sql.gz
백업이 끝난 후에는 LocalSettings.php에 추가했던 줄을 주석처리해 줍니다.
Related files
데이터베이스에 저장되지 않는 파일들을 백업해 두어야 합니다. 만약 충분한 크기의 하드디스크를 갖고 있다면 전체를 압축해서 백업하는 것도 좋겠습니다.
- sudo tar zcvhf mediawiki.tgz /var/www/html/w
만약 반드시 필요한 파일만 백업하고 싶을 때에는 다음 파일을 백업할 수 있습니다.
- LocalSettings.php : 설정 파일
- images : 전체를 백업
- skins : 수정한 테마
- extensions : 개발한 확장 또는 일부 수정한 확장
External Resources
- https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_or_Ubuntu
- 미디어위키 우분투 PPA 정보
- 미디어위키 LTS 우분투 PPA 위치
- MediaWiki manual for developers and administrators
- spam combat manual
- MediaWiki Extensions
- 미디어위키 설정과 관련된 모든 설정을 공개