[Rocky 9] wikimedia 구축

mimic·2024년 9월 3일

사전 설정

서버 설정

sshd 보안 설정
history 구체화
iptables 설치

APM 설치

👉 👩‍🏫 Rocky 9 Apache 2.4.x 패키지 설치
👉 👩‍🏫 Rocky 9 MariaDB 10.5.x 패키지 설치
👉 👩‍🏫 Rocky 9 php-fpm 8.3.x 패키지 설치


APM 설정

도메인 연결

도메인 구매 후 네임 서버에서 IP와 연결되어 있습니다.

apache 사이트 추가

vi /etc/httpd/conf.d/wiki.conf
===
<VirtualHost *:80>
    ServerName 도메인
	ServerAlias www.도메인 # 필요 시 사용
    DocumentRoot /home/wiki/html
    <Directory /home/wiki/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require ip 0.0.0.0 0.0.0.0 # 내부 사이트이므로 접근 제한 IP 설정
    </Directory>
</VirtualHost>
===

DB 추가

MariaDB [(none)]> create user wiki@localhost identified by '비밀번호';
MariaDB [(none)]> create database wiki;
# 위키미디어 설치 시 권한이 모자라면 에러 발생
MariaDB [(none)]> grant all privileges on *.* to wiki@localhost;
MariaDB [(none)]> flush privileges;

위키미디어 설치

설치 파일 다운

다운로드 사이트

cd /usr/local/src
wget https://releases.wikimedia.org/mediawiki/1.42/mediawiki-1.42.1.tar.gz
tar -zxvf mediawiki-1.42.1.tar.gz
mv mediawiki-1.42.1 /home/wiki/html
chmod +x -R /home/wiki

설치 사이트 실행

php-intl 설치

dnf install -y php83-php-intl

php-apcu 설치

dnf install -y php83-php-pecl-apcu

메모리에 저장해놓고 사용하는 고가용성 패키지로 없어도 괜찮지만 경고 뜨는 부분이 거슬려서 설치했습니다.

git 설치

dnf install -y git

nosniff 보안 헤더 추가

vi /etc/httpd/conf.d/wiki.conf
===
<IfModule mod_headers.c>
    Header set X-Content-Type-Options "nosniff"
</IfModule>
===

curl -I 도메인
===
X-Content-Type-Options: nosniff
===


LocalSettings.php 넣기

/home/wiki/html/LocalSettings.php

사이트가 잘 열립니다.


위키 스킨 적용

한국어 지원 스킨 목록

Liberty가 최신 게시글 표기 기능 추가 등 관리가 잘 되고 있는 스킨 같아서 이 스킨으로 다운로드하겠습니다.

리버티 스킨 Git 배포 사이트

cd /home/wiki/html/skins
git clone https://github.com/librewiki/liberty-skin
mv liberty-skin Liberty
vi /home/wiki/html/LocalSettings.php
===
$wgDefaultSkin = 'Liberty';
wfLoadSkin( 'Liberty' );
===

재접속 시 잘 적용되었습니다.


확장 기능 사용

편집기 확장

사전에 wikiPath/extensions 하단에 visualeditor 설치가 되어 있어야 합니다.

설치방법

wfLoadExtension( 'VisualEditor' );
$wgDefaultUserOptions['visualeditor-enable'] = 1; // VisualEditor를 기본으로 설정
$wgHiddenPrefs[] = 'visualeditor-enable';        // 사용자가 끌 수 없도록 숨김
$wgDefaultUserOptions['editor'] = 'visualeditor';
$wgVisualEditorEnableWikitext = true; // WYSIWYG와 마크업 편집기 간 전환 허용

디버깅 로그

사전에 wikiPath/ 하단에 log 폴더가 생성되어 있어야 합니다.

$wgShowExceptionDetails = true;
$wgDebugLogFile = "/home/wiki/log/debug.log";

외부 링크 새창 혹은 새 탭으로 열기

$wgExternalLinkTarget = '_blank';

미리보기 활성화

사전에 wikiPath/extensions 하단에 Popups가 설치가 되어 있어야 합니다.

설치방법

wfLoadExtensions( [
    'TextExtracts',
    'PageImages',
    'Popups'
] );
$wgPopupsHideOptInOnPreferencesPage = true;
$wgPopupsReferencePreviewsBetaFeature = false;

업로드 설정

# 업로드 폴더
$wgUploadPath = "$wgScriptPath/images"; // 웹에서 접근하는 경로 
$wgUploadDirectory = "/home/wiki/images"; // 실제 업로드 디렉터리

# 업로드 제한 늘리기
$wgMaxUploadSize = 3 * 1024 * 1024 * 1024; // 3GB byte 단위

# 파일 업로드 허용
$wgEnableUploads = true;

# 업로드 가능 확장자 추가
$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'pdf', 'doc', 'docx', 'zip', 'mp4', 'avi', 'ods', 'odt', 'webp' ];

업로드 파일 단위는 byte이므로 그에 맞게 변환해서 입력해야 합니다.
또한 mediawiki 내부에서 값을 증설하였다면 해당 값이 php나 apache 등의 was 설정에서도 가능한 값인지 확인하여야 합니다.

실제 서버 내에 업로드되는 폴더는 웹 실행권한 유저에서 rwx 권한이 모두 존재하도록 설정하면 됩니다.


동시 업로드 설정

사전에 wikiPath/extensions 하단에 UploadWizard가 설치가 되어 있어야 합니다.

설치방법

$wgCopyUploadsFromSpecialUpload = true;
$wgUploadNavigationUrl = '/wiki/Special:UploadWizard';
$wgExtensionFunctions[] = function() {
        $GLOBALS['wgUploadNavigationUrl'] = SpecialPage::getTitleFor( 'UploadWizard' )->getLocalURL();
        return true;
};


사이드 바 메뉴 추가

domain.com/index.php?title=미디어위키:Sidebar url 접근 후 편집 클릭

* navigation
** mainpage|mainpage-description
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help-mediawiki

#### 여기서부터 추가한 부분
* 문서 List
** Category:All_Pages|모든 문서
** Category:INFO|INFO
** Category:test|test
** Category:test2|test2
#### 추가 끝

* SEARCH
* TOOLBOX
* LANGUAGES
profile
Raiju Hantu Goryo Obake

0개의 댓글