[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를 설치하면 될 것 같긴하다.

Read more

[Linux] Mariadb Docker container 설치

[Linux] Mariadb Docker container 설치

A. 사용환경 * OS : Rocky Linux 9.5 (Blue Onyx) * Docker : 28.0.4 * Portainer : 2.27.3 LTS B. 시작하기 전에... 어떤 소프트웨어를 사용하더라도 보통 Database는 거의 필수로 필요한 편이다.(요즘엔 SQLite도 많이써서... DB서버가 없어도 되긴하지만 어쨌든!) 업무적으로 사용할 소프트웨어들을 몇개 검토해봤는데, 대부분이 MySQL, Mariadb, PostgreSQL이더라. 일단, 바로 설치해서 사용해볼

By simplism
[Linux] Docker에 Portainer 설치

[Linux] Docker에 Portainer 설치

A. 사용환경 * OS : Rocky Linux 9.5 (Blue Onyx) * Docker : 28.0.4 B. Portainer란? docker를 사용할 때 명령어 기반으로 사용해도 되지만... 여전히 GUI는 필요하다.(ㅎㅎ) Portainer를 간단하게 설명하면 docker 관리소프트웨어(웹기반)정도로 이해해도 된다. Portainer 공식 홈페이지에서 확인해보면 기능이 아주 많은 것 같은데... 사실 나의 경우에는 아주 단순한 기능만

By simplism
[Linux] Rocky Linux 9에 Docker 설치

[Linux] Rocky Linux 9에 Docker 설치

사용환경 1. Hardware : VMware 2. OS : Rocky Linux 9.5 (Blue Onyx) A. 시작하기 전에.. Docker 테스트를 위해서 VMware에 가상서버를 생성하고 Rocky Linux를 설치했다. 개인적으로는 Ubuntu를 선호하는 편인데, 회사에서 사용할 서버라서 다른 사람들과 같이 사용하기 위해서 RHEL이나 RHEL과 호환되는 배포판을 선택해서 사용하는 편이다. B. Docker 설치 전 작업 01. OS

By simplism