작성일 댓글 31개

자작NAS – Nextcloud 설치

* 반드시 이전 글인 “Nextcloud 설치 준비”의 과정을 거치고 나서 설치해야 합니다.

1. Nextcloud 설치할 위치 선택

우선 Nextcloud를 설치할 위치를 정합니다.

아파치 서버의 기본 디렉토리는 /var/www/html 입니다. 여기에 설치해도 되고, /var/www/nextcloud 와 같은 다른 위치나 아니면 자신의 홈 디렉토리 하위에 넣어도 관계는 없습니다(제가 실제로 사용하는 서버에서는 홈디렉토리 안에서 모든 자료와 웹서버 파일을 관리합니다). 기본 디렉토리에 설치하든 다른 위치에 설치하든 소유자와 권한, 아파치 가상호스트 설정만 제대로 되어 있다면 도메인주소로 접속할 수 있습니다.

여기서는 /var/www/nextcloud 위치에 설치하는 것으로 설명하겠습니다. /var/www로 이동합니다.

$ cd /var/www

2. Nextcloud 다운로드 및 압축 해제

1) Nextcloud Server 다운로드

Nextcloud Server 파일을 다운로드합니다. 3월 21일 기준으로 11.0.2가 최신입니다. 최신 버전은 넥스트클라우드 다운로드 페이지에서 확인할 수 있습니다.

$ sudo wget https://download.nextcloud.com/server/releases/nextcloud-11.0.2.tar.bz2

명령어를 입력하면 파일을 해당 위치에 다운로드 받습니다.

2) 압축 해제

다음 명령어를 이용해 압축을 풉니다.

$ sudo tar -xvf nextcloud-11.0.2.tar.bz2

압축된 파일과 폴더가 주욱 나오면서 압축이 풀립니다.
제대로 풀렸나 조회를 하려면 ls  명령어를 입력합니다.
nextcloud-11.0.2.tar.bz2를 압축 해제하여 nextcloud 디렉터리가 보일 것입니다.

3) Nextcloud 디렉터리 소유자 및 권한 변경

다시 한번 ls 명령어를 입력해 줍니다. 이번에는 옵션을 같이 입력하겠습니다.

$ ls -l

ls는 디렉터리 안의 파일과 디렉터리를 보여주는 명령어입니다. -l 옵션은 자세한 정보를 출력하라는 뜻입니다.

소유자도 없고 소유 그룹도 없는 nextcloud 디렉터리가 보입입니다. 웹브라우저를 통해 해당 디렉터리에 접근하려면 소유자와 소유 그룹이 www-data 여야 합니다. 그리고 권한을 drwxrwxr-x로(775)로 변경해 줍니다. 다음 명령어를 순서대로 입력해 줍니다.

$ sudo chown -R www-data:www-data nextcloud
$ sudo chmod -R 775 nextcloud
$ ls -l

소유자와 소유 그룹이 www-data로, 권한이 drwxrwxr-x로 변경된 것을 확인할 수 있습니다.

3. Nextcloud를 위한 DB 생성

Nextcloud에서 사용할 데이터베이스를 생성할 차례입니다.

1) phpMyAdmin에 접속하여 root 계정으로 로그인합니다.

2) 상단 탭에서 데이터베이스를 클릭합니다.

3) 새 데이터베이스 만들기 밑의 데이터베이스명 입력 칸에 “nextcloud”를 입력하고 만들기를 클릭합니다.

데이터베이스명은 꼭 nextcloud가 아니어도 되지만 식별할 수 있는 것이어야 합니다.
이제 막 생성됐기 때문에 아무 테이블도 없습니다.

4) 왼쪽 트리 구조의 New를 클릭하여 데이터베이스 목록을 확인합니다.

데이터정렬방식이 utf8_general_ci로 생성되었습니다.

3. Apache2 서버에 도메인 등록하기

아파치 서버의 기본 디렉터리인 /var/www/html에 Nextcloud의 파일을 집어넣었다면 따로 설정할 필요 없이 도메인 주소를 입력하면 바로 접속될 것입니다.
하지만 /var/www/nextcloud 에 설치하였기 때문에 추가로 설정을 해줘야 합니다.

다음 명령어를 순서대로 입력하여 Nextcloud를 위한 설정 파일을 만들어 줍니다.

$ cd /etc/apache2/sites-available
$ sudo vi nextcloud.conf

vi 사용에 익숙치 않다면 vi 간단 사용법을 참고하세요.
빈 파일의 내용에 다음 내용을 입력합니다.

<VirtualHost *:80>

    ServerName 자신의 도메인 주소
    ServerAdmin 자신의 이메일 주소

    ServerAlias 자신의 도메인 주소
    DocumentRoot 넥스트클라우드 파일이 있는 경로

</VirtualHost>

저장한 후 설정 파일을 아파치 서버에 등록합니다.

$ sudo a2ensite nextcloud.conf

추가로 .htaccess 활성화해야 합니다. 활성화 하지 않을 경우 “.htaccess 파일이 처리되지 않아서 데이터 디렉터리와 파일을 인터넷에서 접근할 수 없을 수도 있습니다. 올바르게 서버를 구성하는 방법에 대한 자세한 내용은 설명서를 참조하시기 바랍니다.” 라는 경고 문구가 뜨게 됩니다.
다음 명령어를 입력해 줍니다.

$ sudo a2enmod rewrite

모두 마쳤으면 아파치 서버를 재시작합니다.

$ sudo service apache2 restart

4. 웹브라우저에서 설치 마무리

자신의 도메인 주소에 접속하면 다음과 같은 화면이 뜹니다.

  • 관리자 계정 만들기 – 관리자 계정을 만드는 부분입니다. 관리자의 ID와 비밀번호를 입력합니다.
  • 데이터 폴더 – nextcloud가 설치된 디렉터리의 하위 디렉터리가 기본 설정이지만 다른 곳을 정할 수도 있습니다.
    예를 들면 /home/사용자 이름/data로 변경 가능합니다. 이때 해당 폴더가 생성되어 있어야 하고 권한과 소유자 소유 그룹이 제대로 지정되어 있어야 제대로 동작합니다.
    지금은 기본 상태로 진행합니다. 나중에 데이터 폴더 변경도 다룰 것입니다.
  • 데이터베이스 사용자와 암호 – root 계정 정보를 입력하면 됩니다.
  • 데이터베이스 이름 – nextcloud라는 데이터베이스를 만들었으므로 nextcloud를 입력합니다.
    다른 이름으로 했다면 그 이름을 입력합니다. 생각이 안 나면 phpmyadmin에 접속하여 데이터베이스 목록을 확인합니다.
  • localhost – 변경하지 않습니다.

다 입력했다면 [설치 완료] 버튼을 눌러줍니다. 생각보다 시간이 오래 걸릴 수 있습니다. 느긋하게 기다려 봅니다.

설치가 완료되면 다음과 같은 화면이 나타납니다.

Nextcloud 설치 끝.

작성일 댓글 남기기

자작NAS – DB관리를 편하게, phpMyAdmin 설치

phpMyAdmin은 DB 관리를 Web UI를 통해서 할 수 있도록 도와주는 웹 애플리케이션입니다. DB 관리를 콘솔로 하려면 까다로운 부분이 많은데, 그래서 phpMyAdmin은 매우 유용합니다.

phpMyAdmin 설치

~$ sudo apt-get install phpmyadmin
phpMyAdmin 설치를 위한 명령어를 입력합니다.
설치 중간에 설정하는 부분입니다. apache2에 스페이스바를 눌러 * 표시를 한 뒤 Tab 키를 눌러 OK로 커서를 옮긴 뒤 엔터 칩니다.
Yes에 엔터 칩니다.
phpmyadmin을 위한 암호를 입력하라고 하는데, 저는 MariaDB의 root 계정과 동일한 암호를 입력해줬습니다.
한 번 더 암호를 입력합니다.
phpMyAdmin 설치가 완료되었습니다.

Apache Server 재시작

phpMyAdmin의 설치가 모두 끝났으니 아파치 서버를 재시작 해줍니다.

~$ sudo service apache2 restart

이제 http://내부IP주소/phpmyadmin 또는 http://도메인주소/phpmyadmin으로 접속하여 GUI로 DB 관리를 할 수 있습니다.

작성일 댓글 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 – 클라우드 스토리지

클라우드(Cloud)라는 말은 어느새 우리 디지털 생활(Digital Life)을 영위하는 데에 빠질 수 없는 말이 되었습니다. 하지만 우리가 클라우드라고 할 때에는 보통 클라우드 스토리지(Cloud Storage)를 가리키는 경우가 많습니다.

클라우드 스토리지

클라우드 스토리지는 “서버에 내 자료를 저장해두고, 클라이언트 단말기를 이용하여 언제 어디서든 내 자료에 접근하는 기술”이라고 할 수 있습니다. 백문이 불여일견이라고 설명을 들어도 이해가 가지 않는다면 실제 서비스를 보면 됩니다.

네이버의 네이버 클라우드, 마이크로소프트의 OneDrive, Dropbox 등이 있고, 지금은 서비스가 종료된 다음카카오의 다음클라우드도 있습니다. 이제는 감이 올 겁니다.

그래도 잘 모르겠다면 클라우드 스토리지에 대해 자세히 설명이 되어 있는 나무위키를 찾아보시기 바랍니다.

Nextcloud

제가 소개해드릴 클라우드 스토리지 Nextcloud는 앞서 잠깐 언급했던 네이버 클라우드, 다음클라우드, Dropbox, OneDrive 등과 같은 서비스와 거의 같은 기능을 제공합니다.

Nextcloud 주요 기능

  • Dropbox와 같은 동기화(Sync) 기능
  • 스마트폰 전용 애플리케이션(안드로이드, 아이폰)
  • Windows, Mac, Linux 다양한 OS 지원
  • 공개 주소를 통한 파일 및 폴더 공유
  • ownCloud 사용자 및 그룹 사이의 공유
  • 다양한 3rd Party 애플리케이션 제공

Dropbox의 설치형 버전이라고 생각하면 쉽습니다. 블로그도 기업에서 제공되는 서비스형 블로그와 개인이 웹호스팅과 도메인 서비스를 받아서 직접 설치하는 설치형 블로그가 있듯이, Nextcloud는 Dropbox의 설치형 버전이라고 할 수 있습니다.

물론 세부적인 기능들에서는 조금씩의 차이점이 있습니다만 거의 동일한 기능을 제공하며 오히려 대부분 무료 사용자인 것을 고려할 때 기능은 Nextcloud가 더 다양하다고 할 수 있습니다. 오히려 Nextcloud는 자신이 사용자이면서 동시에 관리자가 되는 것이기 때문에 자신뿐 아니라 다른 사람까지도 자신의 Nextcloud를 이용할 수 있게 계정을 만들고 관리할 수도 있습니다. 개인 드롭박스의 운영자쯤 된다 할 수 있겠습니다.

실제로 영리 운영자가 되어 수익을 내는 서비스를 제공할 수는 없겠지만 지인들끼리 사용할 클라우드 스토리지를 구축한다던가, 아니면 자기 자신만을 위한 클라우드 스토리지를 구축할 수 있는 것입니다.

Nextcloud를 설치하여 나를 위한 클라우드 스토리지를 구축해 봅시다.

 

작성일 댓글 2개

자작NAS – MariaDB 10 설치

우분투 서버 16.04를 기준으로 다음 명령어를 순서대로 입력합니다. 다른 버전이거나 직접 설명서를 읽으며 설치해보고 싶다면 MariaDB 사이트의 Downloads 페이지에 들어가서 원하는 버전을 선택해 확인하면 됩니다.

MariaDB를 설치하기 위해 여러 명령어를 입력해야 하는데 과정이 좀 기니 잘 따라오시기 바랍니다.

sudo apt-get install software-properties-common
mariadb-install-1
첫 번째 명령어를 입력하고 Y를 입력해 설치해 줍니다.
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
mariadb-install-2
두 번째 명령어를 입력하면 위와 같은 메시지가 출력됩니다.
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.kaist.ac.kr/mariadb/repo/10.1/ubuntu xenial main'
mariadb-install-3
세 번째 명령어를 입력하면 콘솔에는 아무런 반응이 없습니다. 패키지 정보가 담긴 주소가 추가됩니다.
sudo apt-get update
mariadb-install-4
네 번째 명령어를 입력하여 패키지 정보가 담긴 주소에서 정보를 최신화 합니다.
sudo apt-get install mariadb-server
mariadb-install-5
다섯 번째 명령어를 입력하면, 드디어 MariaDB를 설치합니다. Y를 입력합니다.
mariadb-install-6
설치 중간에 DB 최고 관리자인 root 계정에 대한 암호를 입력하라고 합니다.
mariadb-install-7
한 번 더 암호를 입력합니다.
mariadb-install-8
조금의 시간이 지나면 설치가 완료됩니다.

MariaDB의 설치도 끝났습니다.

작성일 댓글 남기기

자작NAS – PHP 7 설치

PHP 버전으로 가장 많이 쓰이는 버전은 5.x.x 대 PHP 입니다. PHP 7은 올해 정식 업데이트 되었으니 안정화되었다고 하기엔 조금 무리가 있을 겁니다. 하지만 PHP 7을 설치해야 하는 이유가 있는데, 가벼움입니다. 접속하여 로딩이 마쳐지기까지 7.x초 걸리는 어떤 웹사이트가 PHP 7으로 업데이트한 후에는 4.x초로 3초가량 빨라졌습니다(출처: 클리앙).

그래서 서버 성능이 여러가지 이유로 (특히 재정적인 이유로) 제한적인 경우 PHP 7을 설치해야 비교적 쾌적하게 웹 서버를 운영할 수 있습니다.

우분투 16.04는 PHP를 설치하면 기본적으로 7버전을 설치합니다.
PHP 7 설치를 위해 다음 명령어를 입력합니다. 긴 명령어니 복사 붙여넣기를 이용해야 오타가 없습니다.

sudo apt-get install php libapache2-mod-php php-xml php-gd php-mysql
이어서 명령어를 입력하면 방금 전에 암호를 입력했기 때문에 다시 암호를 묻지 않습니다. Y를 입력하면 설치가 진행되며 곧 완료됩니다.
이전에 sudo 명령어를 입력하여 암호를 입력했다면 일정 시간동안 암호를 물어보지 않습니다. Y를 입력하면 설치가 진행되며 곧 완료됩니다.

역시 간단하게 PHP 7의 설치가 끝났습니다.