작성일 댓글 2개

자작NAS – Nextcloud 설치 준비

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

  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를 설치하기 위한 준비는 모두 끝이 났습니다.

자작NAS – Nextcloud 설치 준비”에 대한 2개의 의견

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

    1. 다른 부분에 잘못입력해서 그런건 아닌가요?

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.