본문 바로가기
SW 프로그래밍/nextcloud

라즈베리파이 NextCloud 설치하기(4)

by N2info 2020. 2. 29.

SPACE XIAN님의 글에 따르면 다음의 순서로 진행됩니다.

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

자세히 보고 따라해야 합니다.(이 부분은 정확해야 하기 때문에 SPACE XIAN님의 글을 그대로 옮깁니다.)

 

1. nextcloud의 한글관련 최적화

1) Apache2 UTF8 설정

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

sudo vi /etc/apache2/apache2.conf

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

AddDefaultCharset utf-8

 

[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
;mbstring.language = Japanese

; Use of this INI entry is deprecated, use global internal_encoding instead.
; internal/script encoding.
; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
;mbstring.internal_encoding =

; Use of this INI entry is deprecated, use global input_encoding instead.
; http input encoding.
; mbstring.encoding_translation = On is needed to use this setting.
; If empty, default_charset or input_encoding or mbstring.input is used.
; The precedence is: default_charset < input_encoding < mbsting.http_input
; http://php.net/mbstring.http-input
;mbstring.http_input =

; Use of this INI entry is deprecated, use global output_encoding instead.
; http output encoding.
; mb_output_handler must be registered as output buffer to function.

; Use of this INI entry is deprecated, use global input_encoding instead.
; http input encoding.
; mbstring.encoding_translation = On is needed to use this setting.
; If empty, default_charset or input_encoding or mbstring.input is used.
; The precedence is: default_charset < input_encoding < mbsting.http_input
; http://php.net/mbstring.http-input
;mbstring.http_input =

; Use of this INI entry is deprecated, use global output_encoding instead.
; http output encoding.

; mb_output_handler must be registered as output buffer to function.
; If empty, default_charset or output_encoding or mbstring.http_output is used.
; The precedence is: default_charset < output_encoding < mbstring.http_output
; To use an output encoding conversion, mbstring's output handler must be set
; otherwise output encoding conversion cannot be performed.
; http://php.net/mbstring.http-output
;mbstring.http_output =
[mbstring]
; language for internal character representation.
; This affects mb_send_mail() and mbstring.detect_order.
; http://php.net/mbstring.language
mbstring.language = UTF-8

; Use of this INI entry is deprecated, use global internal_encoding instead.
; internal/script encoding.
; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
mbstring.internal_encoding =UTF-8

; Use of this INI entry is deprecated, use global input_encoding instead.
; http input encoding.
; mbstring.encoding_translation = On is needed to use this setting.
; If empty, default_charset or input_encoding or mbstring.input is used.
; The precedence is: default_charset < input_encoding < mbsting.http_input
; http://php.net/mbstring.http-input
mbstring.http_input = UTF-8

; Use of this INI entry is deprecated, use global output_encoding instead.
; http output encoding.
; mb_output_handler must be registered as output buffer to function.
; If empty, default_charset or output_encoding or mbstring.http_output is used.
; The precedence is: default_charset < output_encoding < mbstring.http_output
; To use an output encoding conversion, mbstring's output handler must be set
; otherwise output encoding conversion cannot be performed.
; http://php.net/mbstring.http-output
mbstring.http_output = UTF-8

 

3) MariaDB UTF8 설정

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

~$ mysql -u root -p

//접속후

show variables like 'c%';

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

(처음설치후 root 암호가 미설정되었을때는 : http://magic.wickedmiso.com/104)

 

MariaDB [(none)]> show variables like 'c%';
+----------------------------------+----------------------------+
| Variable_name                    | Value                      |
+----------------------------------+----------------------------+
| character_set_client             | utf8mb4                    |
| character_set_connection         | utf8mb4                    |
| character_set_database           | utf8mb4                    |
| character_set_filesystem         | binary                     |
| character_set_results            | utf8mb4                    |
| character_set_server             | utf8mb4                    |
| character_set_system             | utf8                       |
| character_sets_dir               | /usr/share/mysql/charsets/ |
| check_constraint_checks          | ON                         |
| collation_connection             | utf8mb4_general_ci         |
| collation_database               | utf8mb4_general_ci         |
| collation_server                 | utf8mb4_general_ci         |
| column_compression_threshold     | 100                        |
| column_compression_zlib_level    | 6                          |
| column_compression_zlib_strategy | DEFAULT_STRATEGY           |
| column_compression_zlib_wrap     | OFF                        |
| completion_type                  | NO_CHAIN                   |
| concurrent_insert                | AUTO                       |
| connect_timeout                  | 10                         |
| core_file                        | OFF                        |
+----------------------------------+----------------------------+
20 rows in set (0.009 sec)

MariaDB [(none)]>

Mariadb 10.3에서는 my.cnf에 모든 설정이 저장되있지 않다.

그래서 각각에서 수정해야 한다.(참조 : https://slobell.com/blogs/38)

MariaDB [(none)]> show variables like 'c%';
+----------------------------------+----------------------------+
| Variable_name                    | Value                      |
+----------------------------------+----------------------------+
| character_set_client             | utf8                       |
| character_set_connection         | utf8                       |
| character_set_database           | utf8                       |
| character_set_filesystem         | binary                     |
| character_set_results            | utf8                       |
| character_set_server             | utf8                       |
| character_set_system             | utf8                       |
| character_sets_dir               | /usr/share/mysql/charsets/ |
| check_constraint_checks          | ON                         |
| collation_connection             | utf8_general_ci            |
| collation_database               | utf8_general_ci            |
| collation_server                 | utf8_general_ci            |
| column_compression_threshold     | 100                        |
| column_compression_zlib_level    | 6                          |
| column_compression_zlib_strategy | DEFAULT_STRATEGY           |
| column_compression_zlib_wrap     | OFF                        |
| completion_type                  | NO_CHAIN                   |
| concurrent_insert                | AUTO                       |
| connect_timeout                  | 10                         |
| core_file                        | OFF                        |
+----------------------------------+----------------------------+
20 rows in set (0.009 sec)

MariaDB [(none)]>

 

2. Apache2 디렉터리 설정

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

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

sudo nano /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>

 

 

4. MariaDB 환경설정 값 변경

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

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

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld]항목에 다음 내용을 추가하고 저장합니다.

binlog_format = MIXED

MariaDB를 재시작합니다.

sudo service mysql restart

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