AWS에서 미디어위키 설치하기(+시맨틱미디어위키 확장기능 설치)

dbswhdgns08
이동: 둘러보기, 검색

원래 기록인걸 잘 안하지만..., "석사학위논문에 쓰일 데이터베이스/아카이브 플랫폼으로 시맨틱위키를 만들자" 라고 마음먹은 이후 여러 반복적인 삽질을 거치며 구축 순서와 소스코드라도 기록해놓자... 라는 생각이 들어 만든 문서.

기본 환경 세팅

본 항목은 추가적으로 설치할 "Semantic MediaWiki 4.2.0" 와의 호환성 체크를 전제로 하고 있다. 미디어위키를 무조건 최신버전으로 설치하는 것이 당연한 줄 알았는데, 호환성이 꼭 그런 것은 아니니 반드시 자신이 구축할 서버와 웹서비스가 어떤 버전에서 원할하게 작동하는지 호환성을 체크하자. 전부 다 그런 건 아니겠지만, 보통은 최신 버전의 직전 버전이 제일 안정적으로 생각하는 기조가 있는 듯 하다.

호환성/패키지 버젼 체크

Ubuntu 24.04 LTS
SMW 4.2.0(Stable release)
MediaWiki 1.39.8
PHP 8.1(.29) apache2handler
MySQL 5.5.8+


시맨틱위키4.1.3 호환성 1.png
시맨틱위키4.1.3 호환성 2.png

AWS 회원가입 및 EC2 개인 서버 생성

인스턴스 고정 IP 생성


서버 터미널 접속 및 기본세팅(아파치/특정버전php/mysql)

sudo apt-get update[1]
sudo apt-get upgrade[2]
sudo apt update && apt upgrade -y[3]
sudo apt install software-properties-common[4]
sudo add-apt-repository ppa:ondrej/php
sudo apt update[5]
sudo apt-get install apache2 mysql-server php8.1 php8.1-mysql libapache2-mod-php8.1 php8.1-xml php8.1-mbstring[6]
php -v[7]
sudo service apache2 start[8]
sudo systemctl status apache2[9]

미디어위키 설치

cd ../../var/www/html/ [10]
sudo wget https://releases.wikimedia.org/mediawiki/1.39/mediawiki-1.39.8.tar.gz [11] [12] [13]
sudo tar -xvzf mediawiki-1.39.8.tar.gz [14]
sudo mv mediawiki-1.39.8 wiki [15]
sudo apt-get install php8.1-intl [16]
sudo service apache2 restart [17]

mysql 데이터베이스 생성

sudo mysql -u root [18]
CREATE DATABASE wikidb [19]
SHOW DATABASES; 
CREATE USER wiki@localhost IDENTIFIED BY 'PASSWORD'; [20]
GRANT ALL PRIVILEGES ON wikidb.* TO wiki@localhost WITH GRANT OPTION; [21]
quit

미디어위키 이미지 권한 부여

sudo chmod 777 /var/www/html/wiki/images
sudo mv /var/www/html/wiki/images/.htaccess /var/www/html/wiki/images/.htaccess_disabled

웹에서 미디어위키 설치/기본세팅

※1중요!※ 웹에서 미디어위키 설치 과정 중 확장기능 설치는 기본적인 것만 체크하기. 특히, "스팸막기" 확장기능에서 "Abuse Filter" 설치하지 말자.
"스팸막기" 기능 설치시 이후 SMW 설치 과정에서 충돌/에러 발생. (ex.로그인/회원가입/페이지 생성 시에 error 사태 발생)
  • LocalSettings.php 파일 서버 내 wiki가 설치된 디렉토리에 업로드하기.(Filezilla 활용)
*LocalSettings.php 파일 업로드 안될 시 아래 코드로 777권한으로 변경한 후 다시 업로드 실행
sudo chmod -R 777 "../../var/www/html/" [22]
sudo chmod -R 755 "../../var/www/html/" [23]

시맨틱미디어위키 4.2.0 설치

#composer.local.json 생성/편집

COMPOSER=composer.local.json php composer.phar require --no-update mediawiki/semantic-media-wiki 
#위 코드 불가능 시에 아래 방법 사용
cd /var/www/html/wiki sudo vim composer.local.json [24]
#위 코드로 vim으로 들어가서 composer.local.json 파일을 생성해 그 안에 아래 내용을 그대로 복사하기. ""사이에 있는 버전 숫자 확인 필수
{ "require": { "mediawiki/semantic-media-wiki": "~4.2" } }

#composer 설치

sudo apt-get install composer

#설치된 composer 버전 체크

composer -v

#composer 업데이트

sudo composer update --no-dev 
#위 코드 불가능 시 아래 코드
sudo composer update --no-dev --optimize-autoloader

#아파치 재시작

sudo systemctl restart apache2
#에러코드(미디어위키 확장기능과 출동 시 발생 추정)
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.

#미디어위키 localsettings.php 편집 및 업데이트

vim LocalSettings.php

#위 코드로 LocalSettings.php 편집기 진입해서 마지막에 아래 문자열 추가

wfLoadExtension( 'SemanticMediaWiki' );
enableSemantics( 'ip주소/wiki' );

#유지 및 업데이트 설치

sudo php maintenance/update.php 
#위 코드 불가능시 아래 코드 실행
sudo php maintenance/update.php --skip-external-dependencies

#유지/리빌딩

php extensions/SemanticMediaWiki/maintenance/rebuildData.php -v

시맨틱미디어위키 4.2.0 테스트

  1. 아래의 해결방법 시도해보기(참조링크)
1) AWS 인스턴스 재부팅 시도
2) AWS 인스턴스 중지(마우스 오른쪽 클릭) -> 인스턴스 설정 들어가기 -> 사용자 데이터 편집 들어가기 -> 사용자 데이터에 아래의 스크립트 복붙 
Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --// Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash ufw disable iptables -L iptables -F --//


시맨틱미디어위키 확장기능

Semantic MediaWiki 4.2.0

Semantic Result Formats

데이터 검색 결과를 다양한 방법으로 표현할 수 있도록 해주는 기능이다. 
데이터 검색 결과값을 달력, 도표, 갤러리, 슬라이드쇼 등과 같은 다양한 형태로 결과표기가 가능

Semantic Drilldown


Semantic Compound Queries


Page Forms 5.7.2

데이터 입력 및 표시를 효과적으로 만들어주는 확장기능이다. 해당 확장기능을 통해 클래스마다 정해진 양식 틀을 설정할 수 있으며, 이 양식 틀을 활용하여 데이터 편찬과 검색이 용이하게 만든다.


Special:CreateClass ) 특정 클래스의 데이터 작성 틀을 편집하고 설정할 수 있다.
Special:CreateProperty ) 노드데이터(시맨틱위키의 개별문서) 간의 연결관계(또는 귀속된 속성정보값)를 의미하는 property. Property:Foaf:knows 처럼 Type:page인 range가 노드인 오브젝트 프로퍼티, Property:Foaf:name 처럼 TypeText인 range가 데이터형태인 데이터 프로퍼티가 있다.
Special:CreateTemplate
Special:CreateForm
Special:CreateCategory

Skin:Tweeki

ParserFunctions

ParserHooks


References

  1. 사용 가능한 패키지 정보 업데이트
  2. 업데이트된 패키지 업그레이드
  3. 시스템 업데이트
  4. php8.1 레퍼지토리(저장소) 추가
  5. php8.1 레퍼지토리 업데이트
  6. php8.1 설치
  7. 설치된 php 버전 확인
  8. 아파치2 재시작
  9. 아파치 실행 상태 확인
  10. cd <- 디렉토리로 이동
  11. sudo <- 관리자 권한으로 실행
  12. wget <- 파일 가져오기
  13. 미디어위키 1.39.8버전 다운로드 한다는 뜻
  14. tar -xvzf <- tar.gz확장자 압축 파일 해제
  15. mv <- move란 뜻. 파일 위치 이동
  16. apt-get install <- 패키지 설치
  17. 아파치 재시작
  18. mysql 접속
  19. 이름의 데이터베이스 생성
  20. 데이터베이스 계정/암호 생성
  21. 권한 부여
  22. 777 -> 공개 쓰기 권한 변경
  23. 755 -> 755로 다시 권한 변경
  24. vim <- 터미널 내에서 메모장 편집 기능(?)