기본적인 NAS 구성은 지난 번 포스팅으로 모두 마무리 되었다.
이제부터는 필요한 서비스를 그때 그때 추가할 예정이다.
가장 먼저 외부에서도 자유롭게 파일 공유를 할 수 있도록 클라우드 서비스를 붙여보자.
ownCloud
ownCloud는 개인 서버에 무료로 클라우드 스토리지 환경을 만들어주는 서비스다.
ownCloud로 서버를 만들기 위해서는 NAS PC에 LAMP가 모두 설치되어 있어야 한다.
L : Linux
A : Apache
M : MySQL
P : PHP
1. LAMP 설치
OS가 Ubuntu 18.04이기 때문에 AMP만 설치하면 된다.
1) 아파치 Apache 설치
$ sudo apt install apache2
$ apache2 -v로 잘 설치 되었는지 버전 확인
$ apache2 -v Server version: Apache/2.4.29 (Ubuntu) Server built: 2019-09-16T12:58:48
또한 NAS PC의 내부 ip주소로 접근하여 확인할 수 있다.
2) MySQL 설치
$ sudo apt install mysql-server
$ mysql —version으로 설치/실행 확인
$ mysql --version mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
3) PHP 설치 및 확인
$ sudo apt install php $ php -v PHP 7.2.24-0ubuntu0.18.04.2 (cli) (built: Jan 13 2020 18:39:59) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.24-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies
ubuntu 18.04 버전에 PHP 7.2.24가 깔린다.
2. ownCloud 설치
apt에 ownCloud 저장소 키를 추가한다.
$ sudo wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_18.04/Release.key -O Release.key 2020-02-02 03:32:35 URL:https://download.owncloud.org/download/repositories/production/Ubuntu_18.04/Release.key [4485/4485] -> "Release.key" [1]
$ sudo apt-key add - < Release.key
apt에 ownCloud 저장소를 추가한다.
$ sudo echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_18.04/ /' | sudo tee /etc/apt/sources.list.d/owncloud.list
저장소를 갱신한다.
$ sudo apt-get update Hit:1 http://kr.archive.ubuntu.com/ubuntu bionic InRelease Hit:3 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease Hit:4 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease Hit:5 http://kr.archive.ubuntu.com/ubuntu bionic-security InRelease Ign:2 https://attic.owncloud.org/download/repositories/production/Ubuntu_18.04 InRelease Get:6 https://download.owncloud.org/download/repositories/production/Ubuntu_18.04 Release [970 B] Get:7 https://download.owncloud.org/download/repositories/production/Ubuntu_18.04 Release.gpg [481 B] Get:8 https://download.owncloud.org/download/repositories/production/Ubuntu_18.04 Packages [743 B] Fetched 2,194 B in 5s (481 B/s) Reading package lists... Done
필요한 PHP 패키지를 추가로 설치한다.
$ sudo apt install php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip php-mysql
ownCloud 패키지를 설치한다.
$ sudo apt-get install owncloud-files Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: owncloud-files 0 upgraded, 1 newly installed, 0 to remove and 65 not upgraded. Need to get 16.0 MB of archives. After this operation, 101 MB of additional disk space will be used. Get:1 https://download.owncloud.org/download/repositories/production/Ubuntu_18.04 owncloud-files 10.3.2-1+2.1 [16.0 MB] Fetched 16.0 MB in 8s (2,031 kB/s) Selecting previously unselected package owncloud-files. (Reading database ... 117989 files and directories currently installed.) Preparing to unpack .../owncloud-files_10.3.2-1+2.1_all.deb ... Unpacking owncloud-files (10.3.2-1+2.1) ... Setting up owncloud-files (10.3.2-1+2.1) ...
ownCloud 패키지는 /var/www/owncloud에 설치된다.
$ ls -l /var/www/owncloud/ total 332 drwxr-xr-x 22 www-data www-data 4096 Feb 2 03:39 apps drwxr-xr-x 2 www-data www-data 4096 Dec 5 18:20 apps-external drwxr-xr-x 2 www-data www-data 4096 Dec 5 18:20 assets -rw-r--r-- 1 root root 8859 Dec 5 16:07 AUTHORS -rw-r--r-- 1 root root 145204 Dec 5 16:07 CHANGELOG.md drwxrwxr-x 2 www-data www-data 4096 Feb 2 03:39 config -rw-r--r-- 1 root root 4365 Dec 5 16:07 console.php -rw-r--r-- 1 root root 34520 Dec 5 16:07 COPYING drwxr-xr-x 16 root root 4096 Feb 2 03:39 core -rw-r--r-- 1 root root 1717 Dec 5 16:07 cron.php drwxr-xr-x 2 www-data www-data 4096 Dec 5 18:20 data -rw-r--r-- 1 root root 31203 Dec 5 16:07 db_structure.xml drwxr-xr-x 2 root root 4096 Dec 5 18:20 etc -rw-r--r-- 1 root root 179 Dec 5 16:07 index.html -rw-r--r-- 1 root root 3672 Dec 5 16:07 index.php drwxr-xr-x 6 root root 4096 Feb 2 03:39 lib -rwxr-xr-x 1 root root 283 Dec 5 16:07 occ drwxr-xr-x 2 root root 4096 Feb 2 03:39 ocm-provider drwxr-xr-x 2 root root 4096 Feb 2 03:39 ocs drwxr-xr-x 2 root root 4096 Feb 2 03:39 ocs-provider -rw-r--r-- 1 root root 3198 Dec 5 16:07 public.php -rw-r--r-- 1 root root 2157 Dec 5 16:07 README.md -rw-r--r-- 1 root root 5490 Dec 5 16:07 remote.php drwxr-xr-x 4 root root 4096 Feb 2 03:39 resources -rw-r--r-- 1 root root 26 Dec 5 16:07 robots.txt drwxr-xr-x 12 root root 4096 Feb 2 03:39 settings -rw-r--r-- 1 root root 2059 Dec 5 16:07 status.php drwxr-xr-x 6 root root 4096 Feb 2 03:39 updater -rw-r--r-- 1 root root 280 Dec 5 16:07 version.php
이제 이 디렉토리를 아파치 서버로 띄우면 된다.
3. 아파치 Apache 서버 설정
/etc/apache2/sites-available/에 있는 000-default.conf 설정 파일을 복사해 경로만 바꿔서 써보자.
$ cd /etc/apache2/sites-available $ sudo cp 000-default.conf ownCloud.conf $ sudo vim ownCloud.conf ... <VirtualHost *:80> #ServerName ServerAdmin webmaster@localhost DocumentRoot /var/www/html </irtualHost> ...
열어보면 주석처리 된 # ServerName과 ServerAdmin, DocumentRoot가 있다.
도메인이 있다면 ServerName은 # 주석을 지워주고, 원하는 도메인을 적어준다. (예, commitCloud.com)
DocumentRoot에는 ownCloud 경로 /var/www/owncloud를 적어준다.
기존 000-default.conf를 비활성화 시키고, 새로 만든 ownCloud.conf를 등록해준다.
$ sudo a2dissite 000-default.conf $ sudo a2ensite ownCloud.conf $ sudo systemctl restart apache2
4. MySQL 설정
MySql 접속
$ sudo mysql -u root -p Enter password:
(root 패스워드를 입력한다.)
'DB이름'이라는 database를 생성한다.
mysql> create database <DB이름>;
관리자 계정을 생성한다.
mysql> create user '<계정이름>'@'localhost' identified by '<비밀번호>'; Query OK, 0 rows affected (0.00 sec)
관리자 계정에 모든 DB권한을 부여한다.
mysql> grant all privileges on <DB이름>.* to <계정이름>@localhost; mysql> flush privileges; mysql> exit;
5. ownCloud 접속
1) 외부접속
이전에 설정한 DDNS를 통해 외부에서도 접속할 수 있다.
공유기 설정에서 고급 설정 - NAT/라우터 관리 - 포트포워드 설정에서 새로운 포트포워딩을 추가한다.
NAS PC의 내부 IP에 80포트와 443포트를 각각 추가한다.
<DDNS주소>:<설정한포트>로 브라우저에서 들어가면 정상적으로 ownCloud에 접근할 수 있다.
원하는 사용자 이름과 암호를 적고,
데이터 폴더는 기본값으로 하고,
데이터베이스 설정에 MySQL에서 생성한 사용자와 데이터베이스 정보를 입력한다.
정상적으로 설치가 완료되면 아래 화면이 나타난다.
방금 만든 계정으로 로그인 해보자.
ownCloud의 기본 데이터 경로인 /var/www/owncloud/data가 나타난다.
2) 내부접속
내부 ip를 통한 내부 네트워크에서 접속을 설정해보자.
/var/www/owncloud/config/config.php를 수정해야한다.
$ sudo vim /var/www/owncloud/config/config.php <?php $CONFIG = array ( ... 'trusted_domains' => array ( 0 => 'xxx.com', 1 => '<내부IP주소>', ), ...
array에 NAS PC의 내부IP를 추가하고
apache를 재실행한다.
$ sudo systemctl restart apache2
6. ownCloud data 경로 변경
ownCloud의 기본 경로는 OS가 설치된 논리볼륨으로, 용량이 넉넉하지 않다.
기본 경로를 원하는 디렉토리로 변경해보자.
먼저 apache를 종료한다.
$ sudo systemctl stop apache2
기본 data 디렉토리를 원하는 곳으로 이동한다.
$ sudo mv /var/www/owncloud/data <원하는 경로>
ownCloud 설정을 변경해 새로운 디렉토리를 지정한다.
$ sudo vim /var/www/owncloud/config/config.php ... 'datadirectory' => '새로운 경로', ...
apache를 다시 실행한다.
$ sudo systemctl start apache2
여기까지 해서 접속해보면 새로 바꾼 경로가 ownCloud에 잘 나타난다.
그러나 다운로드나 업로드, 또는 폴더 생성이 권한 문제로 작동하지 않는다.
ownCloud Doc의 튜토리얼을 참고하여 문제를 해결했다.
mysql을 실행하여 계정 정보를 수정해줘야 한다.
$ sudo mysql -u root -p Enter password:
(root 패스워드를 입력한다.)
우선 계정 정보를 확인해보자.
mysql> SELECT * FROM <DB이름>.oc_accounts; +----+-------+----------+---------------+--------------+-------+------------+------------------+---------------------------------+-------+ | id | email | user_id | lower_user_id | display_name | quota | last_login | backend | home | state | +----+-------+----------+---------------+--------------+-------+------------+------------------+---------------------------------+-------+ | 1 | NULL | <계정> | <계정> | <계정> | none | 1580646778 | OC\User\Database | /var/www/owncloud/data/<계정> | 1 | +----+-------+----------+---------------+--------------+-------+------------+------------------+---------------------------------+-------+ 1 row in set (0.00 sec)
home 경로가 이전 경로로 되어있다.
아래 명령어로 바꿔준다.
mysql> Update <DB이름>.oc_accounts set home = '<새로운경로>' where id = 1; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0
<새로운 경로>는 기본값과 마찬가지로 마지막이 '/계정'으로 끝나는 경로여야 한다.
아파치를 재실행한다.
$ sudo systemctl restart apache2
이제 다운로드, 업로드, 폴더 추가 등 모두 정상적으로 작동한다.
추가적으로 경로를 조금 손봐주면 AFP-Mac, SMB-Windows, ownCloud-Web으로 모든 플랫폼에서 동일한 경로를 공유할 수 있을 것 같다.
'NAS' 카테고리의 다른 글
자작 NAS - ownCloud와 SMB/AFP 경로 맞추기 (0) | 2020.02.10 |
---|---|
자작 NAS (7) - 내부 네트워크 전송 속도 변경(기가비트) (0) | 2020.01.31 |
자작 NAS (6) - 내부 파일 공유 환경 구축 2(Ubuntu - Windows SMB) (0) | 2020.01.26 |