sshd 보안 설정
history 구체화
iptables 설치
👉 👩🏫 Rocky 9 Apache 2.4.x 패키지 설치
👉 👩🏫 Rocky 9 MariaDB 10.5.x 패키지 설치
👉 👩🏫 Rocky 9 php-fpm 8.3.x 패키지 설치
도메인 구매 후 네임 서버에서 IP와 연결되어 있습니다.
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>
===
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
dnf install -y php83-php-intl
dnf install -y php83-php-pecl-apcu
메모리에 저장해놓고 사용하는 고가용성 패키지로 없어도 괜찮지만 경고 뜨는 부분이 거슬려서 설치했습니다.
dnf install -y git
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
===
/home/wiki/html/LocalSettings.php
사이트가 잘 열립니다.
Liberty가 최신 게시글 표기 기능 추가 등 관리가 잘 되고 있는 스킨 같아서 이 스킨으로 다운로드하겠습니다.
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