다음의 순서로 진행됩니다.

  1. Nextcloud의 한글 관련 최적화
    • Apache2 UTF8 설정
    • PHP UTF8 설정
    • MariaDB UTF8 설정
  2. Apache2 기본 디렉터리 설정 변경
  3. PHP 모듈 설치
  4. MariaDB 환경설정 값 변경

1. Nextcloud의 한글 관련 최적화

Nextcloud는 한국에서 개발되지 않았습니다. 공식적으로 한글 지원을 해준다면 그 기간에 비례하여 문제가 거의 없거나 발생하지 않을 수 있겠지만, Nextcloud는 그렇지 않습니다. 때문에 Nextcloud를 설치하고 사용하는 데 있어서 한글 관련 문제는 어쩌면 발생할 수밖에 없습니다.

한글 관련 문제를 방지하려면 Apache2 서버와 PHP 그리고 MariaDB의 문자 집합(Character Set)을 유니코드를 지원하는 UTF8로 변경해야 합니다. 유니코드는 전 세계의 모든 문자를 표현하기 위해 제정되었고 문자 표시 방법의 국제 표준이 되었습니다.

다음 순서에 따라 APM에 UTF8을 적용합니다.

1) Apache2 UTF8 설정

다음 명령어를 입력하여 apache2.conf 파일을 수정합니다.

~$ sudo vi /etc/apache2/apache2.conf

파일 맨 아래에 다음 내용을 추가합니다.

AddDefaultCharset utf-8

2) PHP UTF8 설정

다음 명령어를 입력하여 php.ini 파일을 수정합니다.
(PHP 7.1버전일 경우 7.0을 7.1로 변경합니다)

~$ sudo vi /etc/php/7.0/apache2/php.ini

파일을 열고 [mbstring]  부분을 찾습니다.

vi 간단 사용법을 보면 검색하는 방법이 있습니다. 검색해서 찾지 않으면 시간이 오래 걸립니다.

[mbstring]  부분에서 다음 문자열을 찾아 값을 모두 UTF-8로 변경해주고 ; 을 제거해 주석 처리를 풀어줍니다.

;mbstring.language = Japanese 
;mbstring.internal_encoding 
;mbstring.http_input 
;mbstring.http_output

이 부분을 다음과 같이 변경해야 합니다.

mbstring.language = UTF-8 
mbstring.internal_encoding = UTF-8 
mbstring.http_input = UTF-8 
mbstring.http_output = UTF-8

3) MariaDB UTF8 설정

먼저 MariaDB에 접속하여 DB 입출력 문자 집합을 알아봅시다. MariaDB에 root 계정으로 접속하는 명령어는 다음과 같습니다.

~$ mysql -u root -p

root 계정의 암호를 입력하면 다음과 같이 MariaDB에 접속됩니다.

다음 명령어를 입력하여 MariaDB의 입출력 관련 설정 상태를 확인합니다.

> show variables like 'c%';

다음과 같이 설정 값들이 출력됩니다.

utf8로 설정된 것들이 보이기는 하지만 database, server 값은 utf8이 아닙니다.
exit 명령어로 MariaDB를 빠져나갑니다.

다음 명령어를 입력하여 my.cnf 파일을 수정합니다.

~$ sudo vi /etc/mysql/my.cnf

한 군데만 수정해주면 됩니다. [mysqld]  부분을 찾아 바로 다음 줄에 다음 내용을 추가합니다.

> character-set-server=utf8

vi를 빠져나와 다음 명령어로 MariaDB를 재시작합니다.

~$ sudo /etc/init.d/mysql restart

다시 MariaDB에 접속하여 설정 값을 확인합니다.

~$ mysql -u root -p
> show variables like 'c%';

이제 utf8로 잘 설정되었습니다.

2. Apache2 디렉터리 설정

* 넥스트클라우드 관련 포스트에서는 /var/www/nextcloud 디렉터리와 xiancloud.tk 도메인을 연결시킬 것입니다. 다음 내용은 Apache 서버에서 Nextcloud를 위한 디렉터리를 추가하는 작업입니다.

보안과 접근성을 위하여 apache2.conf 파일을 수정해야 합니다.

~$ sudo vi /etc/apache2/apache2.conf

다음과 같은 부분을 찾아서

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

바로 밑에 똑같이 하나 더 써줍니다.
Directory에는 자신이 Nextcloud를 설치할 경로를 써주고, Options에서 Indexes를 삭제하고, AllowOverride에서 None을 All로 변경합니다.

<Directory /var/www/nextcloud>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>

수정하는 김에 /var/www/의 내용도 Options에서 Indexes를 삭제하고, AllowOverride에서 None을 All로 변경해 줍니다.

3. PHP 모듈 설치

ownCloud를 설치하기 위해서는 몇 가지 PHP 모듈이 더 필요합니다. 다음 명령어로 설치 후 Apache2 서버를 재시작합니다.

~$ sudo apt-get install php7.0-zip php7.0-curl
~$ sudo service apache2 restart

4. MariaDB 환경설정 값 변경

마지막으로 작업할 것이 하나 있습니다. MariaDB의 binlog_format 기본 값은 STATEMENT인데, Nextcloud에서는 binlog_format의 설정 값이 MIXED가 아니면 설치도 안 되고, 임시로 변경하여 설치했다 하더라도 다시 STATEMENT로 되돌아가기 때문에 귀찮은 일이 발생합니다. 따라서 아예 binlog_format의 설정 값을 MIXED로 고정시켜야 합니다.

다음 명령어로 mysql의 설정 파일을 엽니다.

~$ sudo vi /etc/mysql/my.cnf
[mysqld]항목에 다음 내용을 추가하고 저장합니다.

binlog_format = MIXED

MariaDB를 재시작합니다.

sudo /etc/init.d/mysql restart

이렇게 Nextcloud를 설치하기 위한 준비는 모두 끝이 났습니다.

Share.

About Author

대학교에서는 컴퓨터공학을 전공하고, 대학원에서는 신학을 전공하였습니다. 제 블로그에서는 제 전공과 관련한 것들을 포스팅합니다.

2개의 댓글

  1. annonymous1337 on

    character-set-server=utf8
    해당 코드 때문에 마리아DB 서비스가 재 시작되지 않고 Failed 됩니다.
    utf8로 설정하는 다른 방법은 없을까요?

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.