$sudo passwd /* root 패스워드 지정 */
$su -
#apt-get update
#apt-get dist-upgrade
#apt-get install apache2
#apt-get install php
#vi /var/www/html/index.php
웹서버와 PHP 연동이 제대로 되는지 확인하기 위해 아래내용을 입력한다.
브라우저에 접속하여 PHP 정보가 나오는지 확인한다.
===== 도쿠위키 =====
완료가 되었다면, 도쿠위키를 설치할 차례다. 압축을 풀고, /var/www/html 아래에 복사한다.
#cd /var/www/html
#chown -R www-data:www-data *
#apt-get install php-xml
#apache2ctl restart
브라우저에서 install.php 로 접속한다. 설치에 필요한 정보들을 입력하고 완료한다. 이후 웹서버 설정을 수정해주어야 한다.
#cd /etc/apache2
#vi sites-available/000-default.conf
아래와 같이 파일을 수정한다.
DocumentRoot /var/www/html/dokuwiki
이제 서버IP 만으로도 접속이 가능하다.
===== Letsencrypt =====
요즘은 보안이슈 때문에 http 가 아닌 https 를 사용한다. 이를 위해서는 서버인증서를 발급받아야 한다. 주기적으로 인증서를 발급/갱신해야 하는데, 유료 또는 무료다. 유료는 자동으로 그리고 갱신주기가 긴데(최소 1년) 반해, 무료일 경우 3개월마다 스크립트 또는 프로그램을 수동으로 실행해서 갱신해야 한다. 여기서는 letsencrypt 라는 무료 프로그램을 사용할 것이다.
#apt-get install certbot
#apache2ctl stop
#add-apt-repository ppa:certbot/certbot
#apt-get install python-certbot-apache
#apt-get install python3-certbot-apache
#certbot --apache
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: likewind.ml
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Cert not yet due for renewal
You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry.
(ref: /etc/letsencrypt/renewal/likewind.ml.conf)
What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the cert (limit ~5 per 7 days)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Renewing an existing certificate
Deploying Certificate to VirtualHost /etc/apache2/sites-enabled/default-ssl.conf
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Created redirect file: le-redirect-likewind.ml.conf
Rollback checkpoint is empty (no changes made?)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Your existing certificate has been successfully renewed, and the new certificate
has been installed.
The new certificate covers the following domains: https://likewind.ml
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=likewind.ml
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/likewind.ml/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/likewind.ml/privkey.pem
Your cert will expire on 2021-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
웹서버에 제대로 설정이 되었는지 확인한다.
#cd /etc/apache2/sites-available
#ls
000-default.conf default-ssl.conf le-redirect-likewind.ml.conf
#vi default-ssl.conf
아래와 같이 수정한다.
ServerAdmin webmaster@localhost
ServerName likewind.ml
DocumentRoot /var/www/html/dokuwiki
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
...
# downgrade-1.0 force-response-1.0
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/likewind.ml/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/likewind.ml/privkey.pem
#vi le-redirect-likewind.ml.conf
아래와 같이 수정한다.
ServerName likewind.ml
ServerSignature Off
RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
ErrorLog /var/log/apache2/redirect.error.log
LogLevel warn
브라우저에서 https://www.ssllabs.com/ssltest/analyze.html?d=likewind.ml 접속해서 결과를 확인한다. 주소창에 https: 로 접속해보자. 로딩이 안된다면, 웹서버를 재시작하거나, 방화벽에 443번 포트가 열려있는지 확인한다.
====== 수정 ======
기본으로 설치된 도쿠위키로는 사용하기가 불편하기 때문에 플러그인과 디자인테마 그리고 파일 수정이 필요하다.
===== 디자인 테마 =====
도쿠위키는 꽤 다양한 디자인 테마를 지원한다. https://www.dokuwiki.org/ko:template 에 가서 마음에 드는 테마를 선택한다.
Bootstrap3 Template 로 결정, 다운로드할 필요없이 주소만 저장하여 설치가능하다. 이후 환경설정메뉴에서 아래 항목들을 설정한다.
^ 설정이름 ^ 값 ^
| tpl»bootstrap3»showTools | 없음 |
| tpl»bootstrap3»hideLoginLink | 체크 |
| tpl»bootstrap3»showPageTools | 없음 |
| tpl»bootstrap3»showBadges | 체크해제 |
| tpl»bootstrap3»showWikiInfo | 체크해제 |
| tpl»bootstrap3»pageInfoDateFormat | 사람이 읽을 수 있도록 |
| tpl»bootstrap3»showLoginOnFooter | 체크 |
| tpl»bootstrap3»collapsibleSections | 체크안함 |
| breadcrumbs | 0 |
| tpl»bootstrap3»showPageId | 체크해제 |
| maxtoclevel | 5 |
| maxseclevel | 5 |
===== 플러그인 =====
도쿠위키의 특징이라면 다양한 플러그인들을 제공하고 있다는 점인데, https://www.dokuwiki.org/plugins 에서 찾을 수 있다.
설치방법은 테마와 동일하게 다운로드 주소만으로 간단하게 설치가 가능하다.
==== shortcutkey ====
단축키를 이용해서 페이지 작성, 저장 같은 여러가지 작업을 할 수 있다. https://www.dokuwiki.org/plugin:shortcutkey 를 참고할 것. 설치 후에 '환경설정' 메뉴에서 설정할 수 있다.
==== xbr ====
위키페이지 작성 시에 줄바꿈을 하기 위해서는 엔터키 대신 백슬래시(\\)키를 입력해야 한다. 상당히 번거로운데, 이를 위지윅으로 기존의 엔터키를 이용해서 줄바꿈을 가능하게 한다. https://www.dokuwiki.org/plugin:xbr 를 참고할 것. 설치한 이후, '환경설정' 메뉴에서 “renderer_xhtmlwarning주요 (xhtml) 위키 출력에 사용할 렌더러” 항목을 “XBR” 로 변경하여 저장해야 한다.
==== iframe ====
도쿠위키에서 표시할 수 없는 웹페이지는 iframe 을 사용하면 가능하다. https://www.dokuwiki.org/plugin:iframe 에서 설치 및 이용이 가능하다.
===== 폰트 변경하기 =====
기본 폰트를 바꾸기 위해서는 파일을 직접 수정해야 한다. 참고로 폰트는 https://noonnu.cc/ 에서 골랐다.
#vi /var/www/html/dokuwiki/conf/userstyle.css
아래와 같이 추가한다.
@font-face {
font-family: 'RIDIBatang';
src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_twelve@1.0/RIDIBatang.woff') format('woff');
font-weight: normal;
font-style: normal;
}
body {
background-color: #ffffff;
padding: 0px;
font-family: 'RIDIBatang';
overflow-y: scroll;
}
===== 로고이미지 없애기 =====
왼쪽 상단에 있는 로고를 삭제하기 위해서는 아래와 같이 해당 줄을 삭제한다.
#vi /var/www/html/dokuwiki/lib/tpl/bootstrap3/tpl/navbar.php
...
echo '
';
...
로고대신 폰트글자를 추가하고, 오른쪽 검색창과의 높이를 맞추기 위해 아래처럼 수정한다.
' . $conf['tagline'] . '' : '');
$logo_height = $logo_size[1];
$nabvar_height = $TPL->getNavbarHeight();
echo '';
echo '' . $title . '' . $tagline . '';
echo '';
?>
...
===== 하위 문단(H4,H5) 밑줄 적용하기 =====
문단 작성 시, 상위 문단(H1,H2,H3)까지만 밑줄이 생긴다. 하위 문단까지도 적용하려면 파일을 수정해야 한다.
#cd /var/www/html/dokuwiki
#vi lib/tpl/bootstrap3/Template.php
...
# Page Heading (h1-h2)
# TODO this class will be removed in Bootstrap >= 4.0 version
foreach ($html->find('h1,h2,h3,h4,h5') as $elm) {
$elm->class .= ' page-header pb-3 mb-4 mt-5'; # TODO replace page-header with border-bottom in BS4
}
...
====== 사용 ======
===== 위키페이지 생성 =====
도쿠 위키운영와 관리에 있어 계층구분은 중요하다. 디렉토리로 구분이 되기때문에 명확하게 이해하기 수월하다.
도메인(https://likewind.ml)을 입력하면, 가장 처음 보이는 위키페이지는 /var/www/html/dokuwiki/data/pages/start.txt 이다. 페이지는 텍스트(.txt) 파일 형태로 생성된다. 참고로 이 페이지는 설치 후, 기본 생성되기 때문에 별도로 만들 필요가 없다.
아래와 같이 test 라는 이름의 페이지를 만들어 보겠다.
[[test:test]] # 1
[[test]] # 2
두 줄 모두 빨간색의 링크가 걸린 것을 볼 수 있다. 해당 링크를 클릭하면, 새로운 페이지가 뜨면서 입력할 수 있다. 이 페이지에 내용을 입력 후 저장하면 'test' 라는 이름의 페이지가 생성된다. 여기서 1번과 2번의 차이점이 발생한다.
==== 1번 ====
/var/www/html/dokuwiki/data/pages 아래에 test 라는 디렉토리가 생성되고, 그 아래에 test.txt 파일이 생성된다.
==== 2번 ====
/var/www/html/dokuwiki/data/pages 아래에 test.txt 파일이 생성된다.
디렉토리를 카테고리라고 보면 되는데, 차후에 관리를 위해서는 같은 카테고리의 위키페이지는 같은 디렉토리로 묶어주는 것이 좋다.
===== 미디어 파일 업로드 =====
위키페이지에 삽일할 파일(대부분 사진)들은 페이지 파일(.txt)과 다른 경로(/var/www/html/dokuwiki/data/media)에 저장된다. 역시 카테고리로 만들고 싶다면, 디렉토리로 만들면 된다.
#cd /var/www/html/dokuwiki/data/media
#mkdir book
#chown -R www-data.www-data book
위와 같이 디렉토리 권한(www-data)을 변경해야 한다. 페이지 입력 시에 사진 업로드 창이 뜨고, 앞서 만든 디렉토리를 선택 후 업로드하면 된다.
====== 페이지 권한 설정하기 ======
각 위키페이지별로 권한을 설정할 수 있다. 로그인 후에 '관리페이지 - 접근 제어 목록 관리' 를 이동한다. 디렉토리 또는 하위 페이지별로 권한 설정이 가능하다.
^ 사용자/그룹 ^ 설명 ^
| @ALL | 로그인하지 않은 사용자 |
| @user | 로그인 한 사용자 |
^ 권한 ^ 설명 ^
| 없음 | 접근할 수 없음 |
| 읽기 | 읽기만 허용 |
| 편집 | 읽기 및 수정 가능 |
| 만들기 | 새로운 페이지 생성 가능 |
| 올리기 | 미디어 파일 업로드 가능 |
| 삭제 | 미디어 파일 변경, 삭제 가능 |
====== 도쿠 위키문법 ======
페이지를 작성하는 데 필요한 문법들은 [[wiki:syntax]] 문서를 참고한다. 이외에 추가적으로 필요한 내용을 적었다.
===== 리스트 작성 =====
글을 작성하다보면, 숫자가 표시된 리스트를 적게 된다. 한줄씩 띄어쓰기가 되어 있다면, 큰 문제가 없겠지만, 리스트 중간에 '코드' 나 다른 리스트가 들어간다면, 숫자가 '1'로 초기화될 수 있다. 아래의 예제를 보자.
some code
comes here
- fourth item
some code
comes here
- fourth item
아래의 다른 예제를 보자.
{{wiki:dokuwiki-128.mp4?linkonly}}
===== 테이블에 이미지를 추가하고, 입력한 글자가 길어 페이지가 넘어가는 경우 =====
문제가 발생한 상황은 이렇다. 여행페이지에서 테이블을 써서 한 칸(컬럼)에 사진과 글을 함께 썼다. PC 에서는 문제가 없었지만, 해상도가 작은 휴대폰에서는 글자가 길어서 옆의 칸으로 넘어가버렀다.
해결방법은 테이블 설정을 변경하는 것이다. 설정페이지에서 'Layout - Table style' 항목에서 'responsive' 체크를 해제하는 것이다.
===== 첨자 만들기 =====
첨자를 만들 수 있다. 아래와 같이 입력한다.
그((자전거여행자))는 2000일 동안 세계를 돌아다니고 있다.
그((자전거여행자))는 2000일 동안 세계를 돌아다니고 있다.
===== 사진 크기 조절하기 =====
사진 크기를 강제로 줄여보자.
{{wiki:dokuwiki-128.png?200x50}} // 가로 200, 세로 50
{{:journey:korea:2008:2:5.jpg?nolink&100}} // 가로 100
{{:journey:korea:2008:2:5.jpg?nolink&100x100}} // 가로 100, 세로 100
{{:journey:korea:2008:2:5.jpg?nolink}} // 원본 사이즈
{{wiki:dokuwiki-128.png?200x50}}
{{:journey:korea:2008:2:5.jpg?nolink&100}}
{{:journey:korea:2008:2:5.jpg?nolink&100x100}}
{{:journey:korea:2008:2:5.jpg?nolink}}
===== 캐쉬 사용하기 =====
도쿠위키는 페이지 로딩 속도를 높이기위해 캐시(cache)를 사용한다. 캐시는 매번 접속할 때마다 데이터를 가져오지않고, 한번 저장해놓고 이후에는 저장된 데이터를 로딩한다. 이 것은 장점이자 단점이 될 수도 있는데, 최신정보를 바로 적용할 수 없다는 점이다. 예를 들면, 도쿠위키의 총 문서갯수를 출력하고 싶은 경우 'NUMBEROFPAGES 플러그인'을 사용할 수 있다. 실제 문서를 만들었음에도 숫자가 올라가지 않는 문제가 발생하는데, 이것이 바로 캐쉬문제이다. 이를 해결하기 위해서는 몇가지 방법이 있다.
- 캐쉬를 사용하지 못하게 명령어
'-65' 를 수정하는데, 숫자가 높을 수록 아래로 내려가고, 적을 수록 위로 올라간다. 보통 윗부분이 보이기 때문에 이를 가리기 위해서는 기존에 입력된 숫자보다 더 높은 숫자로 바꿔주면 된다.
===== 구글 번역기 사용하기 =====
구글 번역기를 이용해서 자동으로 페이지가 선택한 언어로 번역되도록 한다. 'Bootstrap3 Template' 을 기준으로 설명한다. 템플릿에 따라 수정해야할 파일들이 다르기 때문이다.
==== navbar.php 수정 ====
likewind.ml/public_html/lib/tpl/bootstrap3/tpl/navbar.php 파일에 아래와 같이 추가한다.
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*/
global $lang;
global $TPL;
global $ACT;
$navbar_labels = $TPL->getConf('navbarLabels');
$navbar_classes = [];
$navbar_classes[] = ($TPL->getConf('fixedTopNavbar') ? 'navbar-fixed-top' : null);
$navbar_classes[] = ($TPL->getConf('inverseNavbar') ? 'navbar-inverse' : 'navbar-default');
$home_link = ($TPL->getConf('homePageURL') ? $TPL->getConf('homePageURL') : wl());
?>