오브리닷넷(Obbli.net)

우분투 22.04 - Tiki Wiki용 AMP설치하고 https 잡은 뒤 도메인 연결 본문

IT/우분투

우분투 22.04 - Tiki Wiki용 AMP설치하고 https 잡은 뒤 도메인 연결

아주가끔은 2023. 10. 25. 16:00
반응형

우분투 20.04에 Tiki Wiki(티키 위키)를 세팅하는 글을 참조하여 티키 위키를 설치하기 위한 세팅을 진행한다. 

필요한 것

  • 서버로 쓸 우분투 22.04
  • root 권한
  • 대략의 우분투 웹서버 세팅에 대한 지식

진행 순서

  • 티키 위키 설치에 필요한 패키지 설치
  • 아파치 서버 설치
  • Let's encrypt 로 SSL 적용
  • 도메인 리다이렉트

1. 패키지 설치

티키 위키 설치에 사용할 패키지를 설치한다.

sudo apt install curl memcached poppler-utils bsdmainutils catdoc elinks man-db odt2txt pstotext unzip composer git phpmyadmin postfix

설치할 때 나오는 질문에 대한 기본 설정은 다음과 같이 한다.

postfix

  • General type of mail configuration: Internet site
  • System mail name: mail.사용자도메인.org

phpmyadmin

  • Webserver : apache2
  • Configure database with dbconfig-common: yes
  • MySQL application password for phpmyadmin: 입력하지 않음

2. 아파치 웹서버 설치

아파치 웹서버를 설치한다.

sudo apt install apache2

아파치 웹서버 시작하기

sudo systemctl start apache2

서버 시동할 때 자동으로 아파치 시작하게 하기

sudo systemctl enable apache2

아파치 상태 확인

systemctl status apache2

아래와 비슷한 메시지가 나타난다.

$ systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-10-25 14:40:19 KST; 1h 14min ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 18460 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
    Process: 19435 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
   Main PID: 18463 (apache2)
      Tasks: 23 (limit: 4597)
     Memory: 46.9M
        CPU: 12.463s
     CGroup: /system.slice/apache2.service
             ├─18463 /usr/sbin/apache2 -k start
             ├─19467 /usr/sbin/apache2 -k start
             ├─19469 /usr/sbin/apache2 -k start
             ├─19471 /usr/sbin/apache2 -k start
             ├─19474 /usr/sbin/apache2 -k start
             ├─19546 /usr/sbin/apache2 -k start
             ├─19550 /usr/sbin/apache2 -k start
             ├─19553 /usr/sbin/apache2 -k start
             ├─19744 /usr/sbin/apache2 -k start
             ├─19746 /usr/sbin/apache2 -k start
             ├─19748 /usr/sbin/apache2 -k start
             ├─20349 /usr/sbin/apache2 -k start
             └─20350 /usr/sbin/apache2 -k start

10월 25 14:40:19 akiha-EP43-DS3L systemd[1]: Starting The Apache HTTP Server...
10월 25 14:40:19 akiha-EP43-DS3L systemd[1]: Started The Apache HTTP Server.
10월 25 14:57:49 akiha-EP43-DS3L systemd[1]: Reloading The Apache HTTP Server...
10월 25 14:57:49 akiha-EP43-DS3L systemd[1]: Reloaded The Apache HTTP Server.
10월 25 14:57:49 akiha-EP43-DS3L systemd[1]: Reloading The Apache HTTP Server...
10월 25 14:57:49 akiha-EP43-DS3L systemd[1]: Reloaded The Apache HTTP Server.
10월 25 14:58:07 akiha-EP43-DS3L systemd[1]: Reloading The Apache HTTP Server...
10월 25 14:58:07 akiha-EP43-DS3L systemd[1]: Reloaded The Apache HTTP Server.
10월 25 14:58:08 akiha-EP43-DS3L systemd[1]: Reloading The Apache HTTP Server...
10월 25 14:58:08 akiha-EP43-DS3L systemd[1]: Reloaded The Apache HTTP Server.

ufw 방화벽 http/https 포트 열어주기

sudo ufw allow http
sudo ufw allow https

ufw 확인 하기

sudo ufw status verbose

ufw 활성화 안되어 있다면?

sudo ufw enable 
sudo ufw disable​

브라우저를 사용해 서버 ip주소로 접속을 시도 해보고 정상 접속된다면 다음 단계로 진행한다.

  • 내부 http://127.0.0.1 또는 http://localhost
  • 사설 IP http://192.168.0.x
  • 공인 IP http://164.124.101.2

3. MariaDB 서버 설치

MariaDB가 설치 안되어 있다면 따로 설치 해준다.

sudo apt install -y mariadb-server mariadb-client

DB를 시작하고 시스템 시작시에 자동 시작 할 수 있도록 해준다.

sudo systemctl start mariadb
sudo systemctl enable mariadb

새로 설치 했다면 아래 명령으로 초기 설정을 진행할 수 있다.

mysql_secure_installation

질문에는 대략 Y를 해두면 되는데 다음과 같이 하면 된다.

Press y|Y for Yes, any other key for No: 
Please set the password for root here.

New password: 
Re-enter new password:

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

root 암호 설정을 포함해서 다 마치면 티키 위키 설정을 위해 mariadb에 root 권한으로 진입한다.

mysql -u root -p

아래 정보로 DB 설정을 한다.

  • 티키 위키 DB 사용자 이름 = tikidb
  • 티키 위키 DB 문자집합 = utf8mb4
  • 정렬방법 = utf8mb4_unicode_ci
  • 사용자 이름 = tikiuser@localhost
  • 암호 = 1password1

명령은 아래 . 사용자 이름과 암호는 임의대로 바꿀 수 있다.

CREATE DATABASE tikidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'tikiuser'@'localhost' IDENTIFIED BY '1password1';

티키위키 사용자에게 티키 위키 DB 권한을 준다.

GRANT ALL ON tikidb.* TO 'tikiuser'@'localhost' WITH GRANT OPTION;

DB를 최신정보로 갱신 한다.

FLUSH PRIVILEGES;

'EXIT' 를 입력하여 DB를 나온다.

4. php7.4

DB 서버를 설치한 뒤에는 티키 위키에 맞는 php를 지정해주고 설치해줘야 한다. 현재 티키 위키 LTS 버전 tiki 24.x 버전은 php7.4를 사용해야 하지만 우분투 22.04는 php7.4가 없고 php8.1을 지원하고 있다. 따라서 7.4를 설치할 수 있는 PPA 저장소를 따로 추가해야만한다.

저장소를 갱신해준다.

sudo apt-get update && sudo apt -y install software-properties-common

PPA 저장소를 추가하고 갱신해준다.

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

php 7.4 를 설치해준다.

sudo apt install libapache2-mod-php7.4 memcached php7.4 php7.4-apcu php7.4-bcmath php7.4-bz2 php7.4-common php7.4-curl php7.4-gd php7.4-intl php7.4-ldap php7.4-mbstring php7.4-memcache php7.4-memcached php7.4-mysql php7.4-opcache php7.4-pspell php7.4-soap php7.4-sqlite3 php7.4-tidy php7.4-xml php7.4-xmlrpc php7.4-zip php-apcu php-bcmath php-common php-curl php-gd php-intl php-mbstring php-memcached php-mysql php-pear php-pspell php-sqlite3 php-tidy php-xmlrpc php-zip

php 7.4 를 기본 php로 만들어준다.(현재는 8.1)

sudo a2dismod php8.1
sudo a2enmod php7.4
sudo systemctl restart apache2

sudo update-alternatives --set php /usr/bin/php7.4

모듈을 활성화한다.

sudo phpenmod mbstring

php 설정(/etc/php/7.4/apache2/php.ini)에서 다음 값을 변경해준다.

date.timezone = Asia/Seoul
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360

php 를 아파치에 적용하기 위해 아파치를 재시작한다.

systemctl restart apache2

5. 티키 위키 소스코드를 다운로드하고 설치 준비를 마친다.

티키 위키를 wget을 사용해 '/var/www/' 디렉토리에 다운로드 한다.

cd /var/www/
wget -q https://sourceforge.net/projects/tikiwiki/files/latest/download -O tikiwiki.zip

다운로드한 티키 위키 압축파일을 풀고 디렉토리를 'tikiwiki'로 변경해준다.

unzip tikiwiki.zip
mv tiki-21.1 tikiwiki

티키 위키 디렉토리를 포함한 하위 모든 파일들을 www-data 사용자 그룹으로 변경 해준다.

sudo chown -R www-data:www-data /var/www/tikiwiki

6. SSL을 적용한다.

Letsencrypt 를 사용해서 SSL를 생성하고 적용한다. 먼저 certbot을 설치한다.

sudo apt install certbot -y

apache2를 정지시키고 티키 위키를 사용할 도메인에 대한 SSL 을 생성한다.

  • 도메인 : sample.org
  • 관리자 : admin
sudo systemctl stop apache2
sudo certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email admin@sample.org -d sample.org

생성을 마치면 '/etc/letsencrypt/live/tiki.sample.com' 디렉토리에 SSL 인증서가 저장된다.

7. 아파치 가상호스트 설정

'/etc/apache2/sites-available/' 디렉토리에 tikiwiki.conf 파일을 생성한다.

sudo vi /etc/apache2/sites-available/tikiwiki.conf

SSL 인증서를 포함한 설정값을 입력한다.

<VirtualHost *:80>
     ServerAdmin webmaster@sample.org
     ServerName sample.org
     ServerAlias sample.org

     # Redirect all to safe connections
     Redirect permanent / https://sample.org/
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin webmaster@sample.org
    ServerName sample.org
    ServerAlias sample.org
    DocumentRoot /var/www/tikiwiki/

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/sample.org/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/sample.org/privkey.pem

    ErrorLog ${APACHE_LOG_DIR}/tikiwiki_error.log
    CustomLog ${APACHE_LOG_DIR}/tikiwiki_access.log combined

    <Directory /var/www/tikiwiki>
        Require all granted
        AllowOverride All
    </Directory>

    # Deny all for db/
    <Directory /var/www/tikiwiki/db>
        Order Deny,Allow
        Deny from all
        Options None
        AllowOverride None
    </Directory>

    # Deliver only png, pdf, html, js, css from temp/ folder
    <Directory /var/www/tikiwiki/temp>
        Order Deny,Allow
        Deny from all
        Options Indexes FollowSymLinks
        AllowOverride None
        php_flag engine Off

        <Files ~ "\.(png|pdf|html|js|css)$">
            Order Deny,Allow
            Allow from all
        </Files>
    </Directory>

    # Turn off php and deny some special types
    <Directory ~ "/var/www/tikiwiki/(css|doc|files|img|maps|mods|styles|templates|templates_c|whelp)">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
        php_flag engine Off

        <Files ~ "\.(php|sql|sh|pl|py)">
            Order allow,deny
            Deny from all
        </Files>
    </Directory>
</VirtualHost>

tikiwiki 가상호스트를 활성화 시키고 ssl 모듈을 활성화 한다.

sudo a2ensite tikiwiki
sudo a2enmod ssl

설정값이 잘 먹히는지 테스트를 한뒤 아파치를 재시작한다.

sudo apachectl configtest
sudo systemctl restart apache2

9. 페이지에 접속하고 티키 위키 설치 진행

브라우저로 sample.org 페이지에 접속하고 티키 위키 설치를 진행한다.

 

반응형