[Ubuntu] Dokuwiki 설치

[Ubuntu] Dokuwiki 설치
Photo by Maarten van den Heuvel / Unsplash

사용환경

  • OS : Ubuntu 22.04 LTS (Jammy Jellyfish)
  • Dokuwiki : Release 2024-02-06a "Kaos"

A. 시작하기 전에..

포스트 업로드 순서가 좀 잘 된거 같긴한데... 그래도 순서 신경쓰지 않고 올려보자. 디테일한 설명은 좀 배제하고 최대한 간략하게 요약본으로 정리해본다.

설치한 Ubuntu는 Server버전(Minimized 선택 안함)이다.

B. 설치 전 OS 업데이트

$ sudo apt update
$ sudo apt list --upgradable
$ sudo apt -y upgrade
$ sudo reboot

dokuwiki 설치 전에 OS부터 업데이트해주자. 업데이트가 완료되면 재부팅해서 업데이트가 잘 적용되었는지 확인한다.

C. 시간대 변경

$ sudo timedatectl set-timezone Asia/Seoul

서버를 설치할 때 따로 시간대 설정이 안보였었는데 역시나 UTC 0로 설정되어 있다. 다른 포스트에서 상세하게 설명이 되어있으니 나머지는 그 포스트를 참고하자.

D. 연관패키지 설치

$ sudo apt install -y apache2 php php-gd php-xml php-json
$ sudo systemctl start apache2
$ sudo systemctl enable apache2

설치가 완료되면 웹브라우저를 열어서 apache가 정상적으로 동작하는지 확인한다.

직접 캡쳐

위와 같이 웹페이지가 열리면 apache2는 정상적으로 동작!

$ php -v
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies
$
직접 캡쳐 (https://www.dokuwiki.org/requirements)

dokuwiki 홈페이지에서 System 요구사항을 확인해보니 PHP 8버전이 권장되는 것이 확인되서 준비가 dokuwiki 설치준비가 완료되었다.(2024/02/24 기준)

E. dokuwiki 다운로드

$ wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
$ ls
dokuwiki-stable.tgz
$

이제 dokuwiki를 설치할 디렉토리를 생성하고 해당 디렉토리에 압축을 해제한다.

$ sudo mkdir /var/www/html/dokuwiki
$ sudo tar -xvzf dokuwiki-stable.tgz -C /var/www/html/dokuwiki/ --strip-components=1
$ ls -al /var/www/html/dokuwiki | grep .htaccess
-rw-r--r--  1 2012 2012  1688 Feb 12 21:09 .htaccess.dist
$ sudo cp /var/www/html/dokuwiki/.htaccess{.dist,}
$ ls -al /var/www/html/dokuwiki | grep .htaccess
-rw-r--r--  1 root root  1688 Feb 19 19:42 .htaccess
-rw-r--r--  1 2012 2012  1688 Feb 12 21:09 .htaccess.dist

/var/www/html/dokuwiki/.htaccess 파일까지 미리 작업해둔다.(나중에 Nice URL 작업할 때 필요함..)

F. Apache 설정파일 생성

이제 dokuwiki를 위한 Apache 설정파일을 생성한다.

$ sudo vi /etc/apache2/sites-available/dokuwiki.conf

vi를 이용해서 dokuwiki.conf 파일을 생성하고 아래의 내용을 넣어준다.

<VirtualHost *:80>
        ServerName    wiki.simplism.local
        DocumentRoot  /var/www/html/dokuwiki

        <Directory ~ "/var/www/html/dokuwiki/(bin/|conf/|data/|inc/)">
            <IfModule mod_authz_core.c>
                AllowOverride All
                Require all denied
            </IfModule>
            <IfModule !mod_authz_core.c>
                Order allow,deny
                Deny from all
            </IfModule>
        </Directory>

        ErrorLog   /var/log/apache2/dokuwiki_error.log
        CustomLog  /var/log/apache2/dokuwiki_access.log combined
</VirtualHost>

생성한 dokuwiki.conf 파일을 적용한다.

$ sudo a2ensite dokuwik.conf
Enabling site dokuwik.
To activate the new configuration, you need to run:
  systemctl reload apache2
$ sudo systemctl reload apache2

G. dokuwiki 소유주변경

Apache와 PHP를 이용해서 dokuwiki를 돌리기 위해서는 파일들의 소유주와 퍼미션 변경작업이 필요하다.

그 전에 Apache 프로세스의 실행계정을 확인한다.

$ cat /etc/apache2/envvars | grep APACHE_RUN
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
$

www-data라는 계정으로 Apache가 실행되고 있음을 확인하였으니.. 소유주와 퍼미션을 변경해보자.

$ cd /var/www/html/dokuwiki/
$ sudo chown www-data:www-data conf
$ sudo chown www-data:www-data data
$ cd data
$ ls -al
total 112
drwxr-xr-x 13 root root  4096 Feb 19 19:40 ./
drwxr-xr-x  8 root root  4096 Feb 19 19:42 ../
drwxr-xr-x  2 root root  4096 Feb 19 19:40 attic/
drwxr-xr-x  2 root root  4096 Feb 19 19:40 cache/
-rw-r--r--  1 2012 2012 30767 Feb 12 21:09 deleted.files
-rw-r--r--  1 2012 2012  6516 Feb 12 21:09 dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.png
-rw-r--r--  1 2012 2012 12093 Feb 12 21:09 dont-panic-if-you-see-this-in-your-logs-it-means-your-directory-permissions-are-correct.xcf
-rw-r--r--  1 2012 2012    32 Feb 12 21:09 _dummy
-rw-r--r--  1 2012 2012   143 Feb 12 21:09 .htaccess
drwxr-xr-x  2 root root  4096 Feb 19 19:40 index/
drwxr-xr-x  2 root root  4096 Feb 19 19:40 locks/
drwxr-xr-x  2 root root  4096 Feb 19 19:40 log/
drwxr-xr-x  3 root root  4096 Feb 19 19:40 media/
drwxr-xr-x  2 root root  4096 Feb 19 19:40 media_attic/
drwxr-xr-x  2 root root  4096 Feb 19 19:40 media_meta/
drwxr-xr-x  2 root root  4096 Feb 19 19:40 meta/
drwxr-xr-x  4 root root  4096 Feb 19 19:40 pages/
drwxr-xr-x  2 root root  4096 Feb 19 19:40 tmp/
$ sudo chown www-data:www-data pages
$ sudo chown www-data:www-data attic
$ sudo chown www-data:www-data media
$ sudo chown www-data:www-data media_attic
$ sudo chown www-data:www-data meta
$ sudo chown www-data:www-data media_meta
$ sudo chown www-data:www-data cache
$ sudo chown www-data:www-data index
$ sudo chown www-data:www-data locks
$ sudo chown www-data:www-data tmp
$ sudo chown www-data:www-data log
$ cd ../lib
$ sudo chown www-data:www-data plugins
$ sudo chown www-data:www-data tpl

H. dokuwiki 설치파일 호출

웹브라우저에서 http://[서버IP]/dokuwiki/install.php를 호출한다.(내 경우에는 http://wiki.simplism.kr/install.php)

직접 캡쳐

언어를 한국어로 바꾼다.(영어가 편하면 영어로 해도..)

설치한 위키는 비공개 개인용 위키로 사용할 예정이므로 라이선스 정보는 표기하지 않고, 닫힌 위키로 설정한다.

직접 캡쳐

저장버튼을 눌러주면 설치가 완료된다. 근데 이미지는 왜 깨진겨...

웹브라우저에서 위키주소(내 경우에는 http://wiki.simplism.local/)로 접속하면...?

직접 캡쳐

install.php에서 입력한 id, password로 로그인을 하면..

직접 캡쳐

이제 사용할 준비가 완료됬다!

추가작업

$ cd /var/www/html/dokuwiki
$ ls -l install.php
-rw-r--r-- 1 1001 127 21176 Feb 12 21:09 install.php
$ sudo mv install.php install.php_20240224
$

반드시 해야할 작업은 아니지만... 개인적으로는 설치가 완료되면 install.php는 install.php_날짜 형태로 변경해둔다. 누군가가 install.php를 호출할 수도 있어서? 어차피 덮어쓰기는 안되겠지만... 그래도 찜찜하니까 ㅋ

I. 마치면서..

짧게 쓸려고 했는데... 생각보다 너무 길어졌다. 다음 번에는 이 포스트를 보고서 dokuwiki를 설치하면 될 것 같긴하다.