작성일 댓글 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 – 번외편 2, ownCloud 8.1 업데이트

ownCloud 8.1 업데이트

ownCloud가 6월 6일 메이저 업데이트로 인해 8.1 버전이 되었다. 굉장히 눈에 띄는 몇 가지 추가 기능이 있다.
다음은 ownCloud 홈페이지에 있는 체인지로그다. 밑줄과 진하게로 주목할만한 기능을 표시했다.

Version 8.1.0 July 6th 2015

  • Much polishing, stability and performance improvements
  • Encryption 2.0
  • Updated Documents
  • New Mount Options for External Storage
  • Federated Cloud ID
  • Integrated documentation
  • LDAP Wizard Improvements
  • Security Improvements
  • App store improvements
  • Release channels
  • ownCloud API work: 190 new calls, 50 replaced
  • Many small improvements

1. New Mount Options for External Storage (외부 저장소를 위한 마운트 옵션)

이건 정말 있으면 좋겠다고 자주 생각해오던 기능이다. 이제 ownCloud에 외부 저장소를 추가할 수 있게 되었다.

다양한 외부 저장소를 지원한다. 자기 서버의 저장소를 삼바나 로컬경로를 이용해 추가할 수 있고, 타인의 서버의 저장소를 FTP나 WebDAV를 이용해 추가할 수도 있다. 아니면 다른 ownCloud 주소와 계정을 이용해 추가할 수도 있다. 뿐만 아니라, Amazon, Dropbox, Google Drive와 같은 상용 클라우드 서비스를 외부 저장소로 추가할 수도 있다.

owncloud-external storage

참고로 자신의 서버에 있는 폴더를 연결할 때, 로컬로 연결하게 되면 권한 문제로 복합해질 수 있다. ownCloud에서는 읽기만 가능하고 수정과 삭제가 안되었다. 권한으로 해결하려다 간단하게 SMB(삼바) 연결로 변경하여 해결했다. 별다른 권한 설정 없이 삼바 서버를 이용중이라면 매우 간편하다.

2. App store improvements (앱스토어 향상)

8.1 버전을 처음 쓴다면 앱스토어에 별 다른 감흥이 없겠지만, 이전 버전을 써오던 사람이 8.1 버전의 앱스토어를 들어가면 놀라움을 금치 못할 것이다. 원하는 앱을 원클릭으로 설치할 수 있게 굉장한 improvement가 있었다.

기본적으로는 ownCloud로부터 인증을 받은 앱을 설치할 수 있게 되있지만, 옵션을 눌러 [실험적인 앱 사용]을 체크하면 인증받지 않은 앱들도 모두 설치가 가능해진다.

owncloud-app store

그러나 어떤 앱이든지, 꼭 테스트 서버에서 테스트를 거친 후 사용하는 것을 추천한다.

3. Release channels (업데이트 채널)

이전에는 7.1.0에서 7.1.1이 릴리즈 되면 업데이트 하라는 메시지가 ownCloud 상단에 떴었다. 리비전 혹은 마이너 업데이트[ref]리비전은 0.0.1 단위로 올라가는 것을 말하고, 마이너 업데이트는 0.1 단위로 올라가는 것을 말하는 것 같다. 메이저 업데이트는 맨 앞의 번호가 올라가는 것이다.[/ref]마다 업데이트하라고 알림이 뜬 것이다.

그러나 이제는 어떤 주기로 업데이트 알림을 볼 것인가 선택할 수 있게 되었다. 네 가지를 선택할 수 있는데, 운영, 안정, 베타, 매일이다. 그리고 상위 버전으로 업데이트만 가능하고 하위 버전으로 내려올 수는 없다.

owncloud-update channels

[운영]은 0.1 이상의 업데이트가 있을 때에만 알림을 준다.
[안정]은 0.0.1 단위로 알림을 준다.
[베타]는 0.0.0.1 단위로 알림을 준다.
[매일]은 아마도 데일리빌드[ref]A daily build or nightly build is the practice of each day doing a software build of the latest version of a program. (출처: 영어 위키백과)[/ref]로 업데이트를 해주는 것 같다.

지금 최신 버전은 8.1.1.3 인데, 내 ownCloud 서버는 8.1.0 버전이다. 현재 업데이트 채널을 [운영]으로 해놨기 때문에 업데이트가 있다고 알림이 뜨지 않는다. 그러나 [안정]이나 [베타]로 놓게 되면 바로 알림이 뜬다.

별것 아닌 기능같지만, ownCloud 서버를 유지 보수하는데 있어서 꽤나 도움이 된다. 사소한 업데이트에도 알림이 뜨지 않는다는 것은 잦은 업데이트에 대한 스트레스도 감소시켜 준다.

4. 모바일 환경 개선

체인지로그 목록에는 없는 부분이다. 이것은 실제로 사용하기 때문에 알 수 있는 변화다. 8.0.x 버전에서는 링크로 공유된 파일이 모바일 디바이스에서 다운로드되지 않는 치명적인 버그가 존재했다. 아이폰에서는 정상이었으나 안드로이드폰에서는 동작하지 않았던 것으로 기억한다.

하지만 이번 업데이트에서 완전히 해결되었다. 다운로드 버튼을 누르면 정상적으로 다운로드가 된다. 모바일로 파일을 보내줄 때는 링크를 보내줄 수 없었던 불편함이 사라지게 되었다. 아마 이 버그는 8.0.x 버전에만 존재한 것으로 보인다. 7 버전을 쓸 때는 전혀 그런 일이 없었기 때문이다.


8.1 버전의 몇가지 주목할만한 기능에 대해서 알아봤다. ownCloud를 6버전일 때부터 쓰고 있지만 빌드 번호가 하나 하나 높아질 때마다 상용 클라우드 서비스 못지 않게 좋아지는 것을 경험한다. ownCloud 서버 뿐만 아니라 그 위에서 동작하는 여러가지 앱 또한 함께 좋아지고 있다. 이 모두가 앞으로의 ownCloud를 더욱 기대하게 만든다.

 

작성일 댓글 11개

우분투 자작 NAS – 12강, ownCloud 업로드 제한 변경, 데이터 저장 위치 변경

10강 11강에서 ownCloud를 설치하고, 한글 관련 문제를 해결하고, 업데이트 하는 방법에 대해서 다루었는데, 몇 가지 사항을 더 다뤄야 할 필요를 느껴서 두번 정도 더 ownCloud에 관한 포스팅을 할 것이다.

먼저 이 포스팅에서는 다음 항목을 다룬다.

  1. 기본 업로드 가능 용량인 512MB를 8GB로 변경하기
  2. 기본 데이터 저장 폴더를 다른 폴더로 변경하기

하나씩 살펴보자.

업로드 용량 제한 변경하기

1. ownCloud의 .htaccess 파일을 수정한다.
sudo vi /ownCloud가_설치된_경로/owncloud/.htaccess

php_value upload_max_filesize 과 php_value post_max_size 항목을 찾아서 8G로 변경한다.

php_value upload_max_filesize 8G
php_value post_max_size 8G
2. php.ini 파일을 수정한다.
sudo vi /etc/php5/apache2/php.ini

upload_max_filesize 항목을 찾아서 8G로 변경한다.
(php.ini 파일의 41% 쯤에 있는데, ‘/’키를 누른 후 검색할 문자열을 입력 후 엔터를 치면 해당 문자열을 찾아준다. vi 기초 사용법 참조)

upload_max_filesize = 8G
3. 웹서버를 재시작한다.
sudo service apache2 restart
4. ownCloud 관리자 페이지에서 업로드 용량을 8G로 변경한다.

owncloud-upload-file-size

이제 용량의 제한이 (거의) 없이 업로드가 가능해졌다.
이제 데이터 저장 위치를 변경해보자.


데이터 저장 위치 변경하기

데이터 저장 위치를 변경하는 방법에는 두 가지가 있다. ownCloud를 설치할 때 지정해 주는 방법과 이미 설치한 상태에서 데이터를 옮기고 저장 위치를 변경해 주는 방법이다. 하나씩 살펴보자.

ownCloud를 설치할 때 지정하기

다음은 ownCloud를 설치할 때 입력해야 하는 정보들이다. 중간에 보면 [데이터 폴더]라는 항목이 있고, 기본 저장 위치인 [/owncloud가_설치된_경로/data]가 적혀 있을 것이다.

owncloud-install-02

1. 먼저, [데이터 폴더] 텍스트 박스에 원하는 경로를 지정해 준다(설치 완료를 누르지 않는다).

예를 들어, /home/사용자이름/owncloud_data 에 저장하고 싶다고 해보자.

2. ssh로 접속해 해당 위치에 폴더를 생성하고 소유자와 권한을 변경한다.
$ sudo mkdir /home/사용자이름/owncloud_data
$ sudo chown www-data:www-data /home/사용자이름/owncloud_data
$ sudo chmod 775 /home/사용자이름/owncloud_data
3. 이제 웹브라우저로 돌아와 ownCloud 설치를 진행한다.

이미 설치된 ownCloud의 데이터 경로 변경하기

1. 우선 웹서버 서비스를 멈춘다.

sudo service apache2 stop

2. 변경하고자 하는 위치에 폴더를 이동하고 소유자를 변경한다.

예를 들어, /home/사용자이름/owncloud_data 에 저장하고 싶다고 해보자.

$ sudo mv /owncloud가_설치된_경로/data /home/사용자이름/owncloud_data
$ sudo chown www-data:www-data /home/사용자이름/owncloud_data
3. ssh로 접속해 ownCloud의 설정 파일을 수정한다.
$ sudo vi /owncloud가_설치된_경로/config/config.php
[datadirectory] 부분을 찾아 바뀐 경로로 수정한다.

'datadirectory' => '/home/사용자이름/owncloud_data',
4. 웹서버를 다시 시작한다.
sudo service apache2 start

굳이 데이터 저장 폴더를 따로 둘 필요가 있냐고 할 수 있다. 물론 옮기지 않아도 사용하는데는 전혀 상관없다.
그러나 데이터 관리에 있어서 좀 더 유용할 수 있기 때문에 추천한다.


다음 포스팅에서는 서드파티 앱 몇 가지를 추천해볼 것이다.

작성일 댓글 한 개

우분투 자작 NAS – 11강, ownCloud 업데이트하기

지난 강의에서는 ownCloud를 설치하고 PC에서와 모바일에서 사용하는 방법을 알아봤다. 이번 강의에서는 ownCloud를 업데이트 하는 방법을 알아본다.

사족을 달면, ownCloud가 출시된지 벌써 꽤 시간이 지났는데도 국내에 많이 알려지지 않았기 때문에 (아니면 알려졌음에도 불구하고 한글로 된 자료가 별로 없어서 그런지) 활성화된 커뮤니티가 없다. 블로그를 뒤져도 설치나 특히 업데이트에 대한 정보가 별로 없다. owncloud.org가 제공하는 문서가 있지만, 영어라서 눈에 잘 안들어온다. 여튼 업데이트를 해보자.

업데이트 알림

ownCloud를 설치하고 쓰다보면 다음과 같은 상단 배너가 떠서 업데이트가 존재함을 알려준다.

owncloud-update-01

ownCloud 백업

언제나 업데이트를 하기 전에는 반드시 해야할 것이 있는데, 바로 백업이다.
사실 잘 안하게 되는데, FM대로 하면 백업은 필수다. SSH로 작업한다.

백업해야 할 항목은 두 가지다.

  • ownCloud 파일
  • ownCloud 데이터베이스

이때 여기서 사용자 데이터는 백업하지 않는다. 용량이 클 경우 너무 오랜 시간이 걸리기 때문이다.

ownCloud 파일 백업

다음 명령어로 데이터 폴더를 제외한 ownCloud 파일들을 백업한다.

~$ tar czfp ~/oc-file-backup.tar.gz --exclude [ownCloud가 설치된 경로/data] [owncloud가 설치된 경로]

괄호는 빼고 ownCloud가 설치된 경로를 입력한다.

~$ mysqldump --lock-tables -u[아이디] -p[암호] owncloud-db-name > ~/oc-db-backup.sql

-u와 -p 다음에 아이디와 암호를 입력할 때는 띄어쓰기 없이 붙여쓴다. owncloud-db-name에는 자신의 ownCloud 데이터베이스 이름을 쓰면 된다.

이제 자신의 홈 폴더에 oc-file-backup.tar.gz와 oc-db-backup.sql 두 개의 파일이 생겼을 것이다. 백업 완료.

업데이트 센터

이제 업데이트 센터로 들어가야 한다. 7.0부터인지 업데이트 센터 기능을 제공한다. 콘솔에서 명령어로 작업하지 않아도 돼서 많이 편리해졌다.

오른쪽 상단의 계정 정보에 마우스를 대면 드롭다운 메뉴가 펼쳐진다. [관리자]를 눌러 설정 화면으로 들어간다.

owncloud-update-02

그리고 중간쯤 해서 업데이트 센터로 가는 링크가 존재한다. 왼쪽 메뉴에서 [업데이트]를 눌러도 나온다. [업데이트 센터 열기]를 누른다.

owncloud-update-03

업데이트 실행

다음이 [업데이트 센터]다. [업데이트]를 눌러서 업데이트를 진행한다.

owncloud-update-04

순서대로, 1. 기존의 파일들을 백업하고(데이터 파일이 아닌 ownCloud 파일들), 2. 최신 패키지를 다운로드한 후, 3. 기존 ownCloud의 파일들을 최신버전으로 교체한다.

owncloud-update-05

데이터베이스 업그레이드

3단계의 작업이 모두 끝나면, 데이터베이스 업그레이드를 해야 한다. [진행]을 누른다.

owncloud-update-06

다음과 같은 화면이 나오는데, [업데이트 시작]을 눌러준다.

owncloud-update-07

업데이트 성공! 이 아니라 다음과 같은 에러 메시지가 뜰 것이다. 뭐라고 하는지 잘 모르겠다. 여튼 문제가 되는 것은 SQL의 설정 값이 BINLOG_FORMAT = STATEMENT 라서 바이너리 로그를 기록할 수 없다는 것이다.

*만약 에러 메시지가 발생하지 않느다면, 다음 부분인 에러 해결방법은 건너띄면 된다. 8.0.2에서만 발생하는 것인지도 모른다.

owncloud-update-08

데이터베이스 업그레이드 에러 해결방법

이 강의 시리즈에서는 MariaDB를 설치했는데, MySQL도 동일하다.

터미널로 작업

나스 서버의 MariaDB에 접속하여 작업한다.

mysql -u root -p owncloud-db-name 입력해 MariaDB의 ownCloud 데이터베이스에 바로 접속한다.
(owncloud-db-name은 자신이 정한 owncloud의 데이터베이스 이름을 적으면 된다)
비밀번호를 입력하면 다음과 같이 나온다.

$ mysql -u root -p owncloud-db-name
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 114057
Server version: 5.5.42-MariaDB-1~trusty-log mariadb.org binary distribution

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [owncloud-db-name]>

SET GLOBAL binlog_format = ‘MIXED’; 를 이용해 binlog_format의 값을 바꿔준다.
다음과 같이 나오면 된 것이다.

MariaDB [owncloud-db-name]> SET GLOBAL binlog_format = 'MIXED';
Query OK, 0 rows affected (0.00 sec)

MariaDB [owncloud-db-name]>

phpMyAdmin으로 작업

터미널 SSH로 작업한 것이 어렵다면 웹에서 작업해보자. phpMyAdmin은 저번에 설치 했을 것이다. 웹브라우저에서 phpMyAdmin에 접속하여 로그인한다.

IP주소/phpmyadmin 이나 도메인주소/phpmyadmin 으로 접속하면 된다.

로그인하면 다음과 같이 뜰텐데, 메인화면 상단의 메뉴 중에서 [환경설정값]에 들어간다.
그리고 [포함하고 있는 단어] 입력 창에 [binlog format]을 입력하면, 목록에 binlog format만 뜰 것이다.

owncloud-update-09

마우스 커서를 목록 가운데 쯤 위치시키면 [수정]이라고 뜬다. 클릭해서 값을 “MIXED”로 변경해주면 끝이다.

owncloud-update-10

업데이트 재개

이제 문제가 해결되었다. 자신의 owncloud에 다시 접속하면 업데이트를 다시 시도할 수 있다. [업데이트 시작]을 누른다.

owncloud-update-11

이제 뭔가 제대로 돌아가는 것 같다.

owncloud-update-12

업데이트 성공!
서드파티 앱들은 자동으로 비활성화 된다. 사용하려면 다시 활성화 시켜줘야 한다.

owncloud-update-13

업데이트된 버전 확인

[관리자] 설정에 들어가서 스크롤을 맨 밑으로 내리면 버전 항목이 나온다.
ownCloud 8.0.4 업데이트가 정상적으로 됐다.

owncloud-update-14