* 읽으시기 전, 필자는 이 포스팅 이후 머지 않아 Synology NAS로 변경했다는 사실을 알려드립니다...!
들어가며
안녕하세요. Mild M 입니다.
2021년 6월 1일, 구글 클라우드가 유료로 전환됨에 따라 휴대폰에서 사진, 동영상 등에 대한 백업에 관심을 가지게 되면서 이번에 개인용 NAS로 ipTIME의 NAS2dual 이라는 제품을 구매하게 되었습니다.
RAM 2GB, 2Bay 등의 특징이 있고 ipTIME 답게 뛰어난 가성비를 보여주는 제품입니다. (구매 당시 171,700원)
저는 NAS를 구매할 때 휴대폰 백업이 1순위 목적이었으므로 클라우드 기능을 지원할 필요가 있었는데 기존에 지원되는것으로 알고 있던 OwnCloud 이외에 PHP7.2 버전을 선택하면 플러그인에서 Nextcloud를 설치할 수 있었습니다.
Owncloud는 스마트폰 어플이 유료인데 저는 가족들과 함께 사용할 계획이므로 Nextcloud를 설치하겠습니다.
참고하실 개략적인 설치 환경은 다음과 같습니다.
Nextcloud 설치 환경
- 펌웨어 버전 : v1.4.78 (마지막 업데이트 21.09.22)
- 플러그인 : phpMyAdmin, Nextcloud
- PHP 버전 : PHP7.3
- Apache 포트 : 8000
- Mysql 포트 : 3306
- 네트워크 : PC와 NAS 같은 공유기 또는 같은 대역의 네트워크에 유선으로 연결
설치하기에 앞서서 먼저 NAS2dual의 초기 설정을 진행하지 않으셨다면 다음 게시물들을 참고하여 ipdisk drive의 연결까지 마친 후 Nextcloud 설치를 진행합니다.
NAS2dual 초기 설정
출처 : 네이버 미놔(jsmh913)님 블로그
설치가 완료되었으면 브라우저(크롬, Edge 등)를 이용해 NAS2dual 관리 페이지에 접속합니다.
Nextcloud 설치
1. 서비스 설정
① Apache 서비스 사용 설정
NAS2dual에 기본 내장된 Apache 웹서버를 이용하여 클라우드를 호스팅할 예정이므로 서비스를 실행시킵니다.
설정 정보는 다음과 같습니다.
- 서비스 : 실행
- 포트번호 : 기본 포트 사용
- HTTPS 포트번호 : ❌사용 안함
- Server Root : 직접 생성 및 지정 (ex : Apache)
- Document Root : 직접 생성 및 지정 (ex : www)
- PHP 버전 : PHP7.3
- UPNP 자동등록 : 포트 포워딩 설정을 할 줄 모른다면 사용
설정을 마치고 저장하기를 눌러 서비스를 실행하면 PHP7.3버전이 설치된 Apache 서비스가 시작되고, Server Root에 서버 설정 파일이 저장되며 Document Root는 웹 서버에서 사용될 웹 문서들을 저장합니다.
② MySQL 서비스 사용 설정
마찬가지로 NAS2dual 기본 내장인 MySQL을 클라우드의 데이터베이스로 이용하기 위해 서비스를 실행시킵니다.
클라우드의 데이터베이스는 Sqlite3와 MySQL 중 선택이 가능한데 원활한 서비스를 위해 MySQL을 선택했습니다.
설정 정보는 다음과 같습니다.
- 서비스 : 실행
- 포트번호 : 기본 포트 사용
- DB 저장 위치 : 직접 생성 및 지정 (ex : Data)
- 서버문자셋 : utf-8
- 클라이언트에서 서버문자셋 사용 : ❌
- DB 테이블 이름 대소문자 구분 : ❌
- 최대허용패킷 : 1 ~ 8
- UPNP 자동등록 : 포트 포워딩 설정을 할 줄 모른다면 사용
설정을 마치고 저장하기를 눌러주면 MySQL 서버가 실행되고, 최초 로그인 계정인 root에 대해 안내해줍니다.
서비스 설정을 모두 마쳤고 플러그인 설치를 진행합니다.
2. 플러그인 설치
① 플러그인 검색/설치
플러그인 설치를 위해 상단의 설치 경로를 먼저 지정합니다.
- 설치 경로 : 직접 생성 및 지정 (ex : Plugin)
Nextcloud를 구성하기 위해 총 두가지 플러그인을 설치합니다. (설치 경로 지정 후 클릭하면 '설치'가 생깁니다)
- phpMyAdmin
- Nextcloud
3. MySQL 계정 설정
① phpMyAdmin 접속
Plug-in APP 설정의 phpMyAdmin 클릭 후 우측의 설정을 클릭하여 phpMyAdmin 콘솔에 진입합니다.
사용자명은 root 이며 비밀번호는 비워둔 채로 실행을 클릭하면 콘솔에 접속됩니다. (초기 계정)
② 사용자 추가
Nextcloud를 생성하기 위해 MySQL 사용자 계정이 필요한데 root는 관리용으로 추후 비밀번호만 변경하고, 별도의 사용자를 추가하여 사용하는 것을 추천합니다. (root 계정 패스워드 변경 시 접근 불가 등 약간의 오류가 있었습니다)
Nextcloud 생성에 사용할 계정에 대한 정보를 입력하고, 호스트명은 localhost로 지정합니다.
스크롤을 아래로 내리면 권한 설정이 있습니다.
nextcloud를 위한 데이터베이스 생성이 필요하므로 '동명의 데이터베이스를 생성하고 모든 권한을 부여'를 체크하고, 권한은 '전체적 권한 - 모두 체크'를 체크하여 모든 권한을 부여합니다.
4. Nextcloud 설치
① Nextcloud 접속
Plug-in APP 설정의 Nextcloud 클릭 후 우측의 설정을 클릭하여 Nextcloud 관리 페이지에 진입합니다.
② Nextcloud 사용자 및 데이터베이스 설정
첫 접속 화면은 Nextcloud 구성을 위한 관리자 계정 생성 및 데이터베이스 연결을 진행합니다.
설정 정보는 다음과 같습니다.
- 사용자 이름 : nextcloud 관리에 사용할 ID
- 암호 : nextcloud 관리에 사용할 비밀번호
- 데이터 폴더 : 클라우드 데이터베이스 파일이 저장될 폴더
- 데이터베이스 사용자 : 추가한 MySQL 사용자 ID
- 데이터베이스 암호 : 추가한 MySQL 사용자 비밀번호
- 데이터베이스 이름 : 추가한 MySQL 사용자 ID ('동명의 데이터베이스 생성~' 체크한 경우)
- 호스트 이름 : localhost:3306 (MySQL 서비스 기본 포트)
정보를 모두 입력하고 설치 완료를 눌러 Nextcloud의 설정을 기다립니다. (최대 5분 이상 소요)
③ Nextcloud 설치 완료
드디어 Nextcloud의 설치가 완료되었습니다.
④ Nextcloud '신뢰하지 않는 도메인', 'Untrusted Domain' 오류
스마트폰 등을 이용해 발급된 DDNS로 접속하기 위해서는 Nextcloud 설정 파일을 수정해야합니다.
ipDisk Drive로 NAS에 접속하여 [플러그인 폴더\apache\nextcloud180\config]에 접근합니다.
config.php 파일을 열어 trusted_domains 아래에 접속하고자 하는 DDNS 정보를 추가합니다.
<?php $CONFIG = array (
'instanceid' => 'oc02jj4piu3a',
'passwordsalt' => 'dFZwLH7D/9rdyWH6b21CKRBeK6R54i',
'secret' => '+iHm/jg+ckj7z6QrG3LEv+wqQ5RwLXdBNH3k9pPUk+kI3DQw',
'trusted_domains' => array (
0 => '192.168.0.xxx:8000', // 기본 접속 정보
// 아래 내용 추가
1 => '서비스계정.ipdisk.co.kr:8000',
2 => '서비스계정.ipdisk.co.kr:8000/apps/nextcloud180',
),
'''
생략
...
);?>
스마트폰 어플을 설치해 DDNS로 접속해보면 정상적으로 접속이 됩니다.
이제 언제 어디서든 설치해둔 NAS에 접속하여 백업 또는 동영상, 음악 스트리밍 등이 가능해졌습니다.
이 버그들을 fix하면 성능 개선의 여지가 어느 정도 있어 보이는데... 정보가 많지는 않네요 ㅜㅜ
약 3~4일 정도 사용해본 느낌은 성능이 그리 뛰어난 편은 아니어서 딜레이가 체감될 정도로 있습니다.
우선 백업 용도에 만족하고 넘어가야 할 것 같고, 이후 성능 튜닝이 가능한 요소가 있다면 포스팅 해보도록 하겠습니다.
궁금하신 점이나 문의사항 있으시면 댓글 부탁드립니다.
감사합니다!