[Ubuntu] Dokuwiki 설치
사용환경
- 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
$
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를 설치하면 될 것 같긴하다.