AWS에서 미디어위키 설치하기(+시맨틱미디어위키 확장기능 설치)
원래 기록인걸 잘 안하지만..., "석사학위논문에 쓰일 데이터베이스/아카이브 플랫폼으로 시맨틱위키를 만들자" 라고 마음먹은 이후 여러 반복적인 삽질을 거치며 구축 순서와 소스코드라도 기록해놓자... 라는 생각이 들어 만든 문서.
목차
기본 환경 세팅
본 항목은 추가적으로 설치할 "Semantic MediaWiki 4.2.0" 와의 호환성 체크를 전제로 하고 있다. 미디어위키를 무조건 최신버전으로 설치하는 것이 당연한 줄 알았는데, 호환성이 꼭 그런 것은 아니니 반드시 자신이 구축할 서버와 웹서비스가 어떤 버전에서 원할하게 작동하는지 호환성을 체크하자. 전부 다 그런 건 아니겠지만, 보통은 최신 버전의 직전 버전이 제일 안정적으로 생각하는 기조가 있는 듯 하다.
호환성/패키지 버젼 체크
- 호환성 비교표(호환성 참조 git)
| Ubuntu | 24.04 LTS |
| SMW | 4.2.0(Stable release) |
| MediaWiki | 1.39.8 |
| PHP | 8.1(.29) apache2handler |
| MySQL | 5.5.8+ |
AWS 회원가입 및 EC2 개인 서버 생성
- AWS 회원가입 (wikidocs 참조링크)
- EC2 개인 서버 생성 (wikidocs 참조링크)
인스턴스 고정 IP 생성
- 인스턴스 고정 IP 생성 (wikidocs 참조링크)
서버 터미널 접속 및 기본세팅(아파치/특정버전php/mysql)
- 서버 터미널 접속(SSH) 및 기초 세팅 (wikidocs 참조링크)
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]
미디어위키 설치
- 미디어위키 다운로드(wikidocs 참조링크
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)
- (위키독스 참조링크2)
※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 테스트
- https://www.semantic-mediawiki.org/wiki/Help:Verify_the_installation
- 시맨틱 미디어위키 사용법
- 설치/테스트 성공 이후 가끔 서버와 위키 접속이 안되는 경우가 발생하기도 함
- 아래의 해결방법 시도해보기(참조링크)
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
- https://www.semantic-mediawiki.org/wiki/Extension:Semantic_Result_Formats
- 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
- ↑ 사용 가능한 패키지 정보 업데이트
- ↑ 업데이트된 패키지 업그레이드
- ↑ 시스템 업데이트
- ↑ php8.1 레퍼지토리(저장소) 추가
- ↑ php8.1 레퍼지토리 업데이트
- ↑ php8.1 설치
- ↑ 설치된 php 버전 확인
- ↑ 아파치2 재시작
- ↑ 아파치 실행 상태 확인
- ↑ cd <- 디렉토리로 이동
- ↑ sudo <- 관리자 권한으로 실행
- ↑ wget <- 파일 가져오기
- ↑ 미디어위키 1.39.8버전 다운로드 한다는 뜻
- ↑ tar -xvzf <- tar.gz확장자 압축 파일 해제
- ↑ mv <- move란 뜻. 파일 위치 이동
- ↑ apt-get install <- 패키지 설치
- ↑ 아파치 재시작
- ↑ mysql 접속
- ↑ 이름의 데이터베이스 생성
- ↑ 데이터베이스 계정/암호 생성
- ↑ 권한 부여
- ↑ 777 -> 공개 쓰기 권한 변경
- ↑ 755 -> 755로 다시 권한 변경
- ↑ vim <- 터미널 내에서 메모장 편집 기능(?)