ownCloud는 오픈 클라우드 스토레지 소프트웨어로 아직까지 활발하게 개발이 진행되고 있다[1].
다음에 도움이 될 것 같아서 이번에는 이 오픈소스를 이용해서 클라우드 스토레지를 Ubuntu 20.04에 구축하는 방법을 서술하려고 한다.
구축환경은 다음과 같다.
운영체제: Ubuntu 20.04.2 LTS (without GUI)
스토레지: RAID5(12TB * 4), 마운트경로 => /RADI5
소프트웨어: ownCloud 10.6.0 (stable)
*시작전 방화벽 80번 포트가 잘 열려있는지 확인하고 진행한다.
ownCloud는 설치 메뉴얼과 패키지 설치 파일을 이용해서 설치를 진행한다[2, 3].
1. 패키지를 업데이트한다.
$ sudo apt update && apt upgrade
2. ownCloud 패키지를 설치한다.
$ wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_20.04/Release.key -O - | sudo apt-key add -
$ echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_20.04/ /' | sudo tee -a /etc/apt/sources.list.d/owncloud.list
$ sudo apt update
$ sudo apt install owncloud-complete-files
/var/www/owncloud 경로가 잘 생성되었는지 확인하고 다음 작업을 진행한다.
3. occ 실행을 위한 헬퍼 스크립트를 vim을 이용해서 작성한다.
$ sudo vi /usr/local/bin/occ
> #! /bin/bash
> cd /var/www/owncloud
> sudo -u www-data /usr/bin/php /var/www/owncloud/occ
$ sudo chmod +x /usr/local/bin/occ
4. 필수 패키지를 설치한다.
$ apt install apache2 libapache2-mod-php mariadb-server openssl php-imagick php-common php-curl \
> php-gd php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-apcu php-redis redis-server wget
occ --version을 입력하고 버전이 잘 나오는지 확인한다.
5. 권장되는 php 패키지를 설치해준다.
5.1. 패키지 레포지토리 추가
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/php.list
$ sudo apt-key adv --recv-keys --keyserver hkps://keyserver.ubuntu.com:443 4F4EA0AAE5267A6C
5.2. 패키지 설치
$ sudo apt install ssh bzip2 rsync curl jq inetutils-ping smbclient php-smbclient coreutils php-ldap
5.3 패키지 레포지토리 제거(나중에 실수로 php 업데이트를 방지하기 위함)
$ sudo add-apt-repository --remove ppa:ondrej/php
$ sudo rm -rf /etc/apt/sources.list.d/php*
6. 아파치 설정을 해준다.
6.1 아파치 root site를 변경해준다.
$ sudo sed -i "s#html#owncloud#" /etc/apache2/sites-available/000-default.conf
$ sudo systemctl restart apache2
6.2 아파치 호스트 설정및 적용한다.
$ sudo vi /etc/apache2/sites-available/owncloud.conf
> Alias /owncloud "/var/www/owncloud/"
>
> <Directory /var/www/owncloud/>
> Options +FollowSymlinks
> AllowOverride All
>
> <IfModule mod_dav.c>
> Dav off
> </IfModule>
>
> SetEnv HOME /var/www/owncloud
> SetEnv HTTP_HOME /var/www/owncloud
> </Directory>
$ sudo a2ensite owncloud.conf
$ sudo systemctl reload apache2
7. 데이터베이스 생성 및 유저권한을 설정한다. (유저 및 패스워드는 직접 정해도 된다, 다만 잊어버리지 말것)
$ sudo mysql
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS owncloud;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON owncloud.* TO owncloud@localhost IDENTIFIED BY 'password';
8. 추천 아파치 모듈을 활성화 한다.
$ sudo a2enmod dir env headers mime rewrite setenvif
$ sudo systemctl reload apache2
여기까지 진행하면 그림 1 과 같이 해당 컴퓨터 ip로 접속하여 web 으로 유저 설정을 진행할 수 있다. (만약 local에 GUI환경에 설치를 진행하고 있다면 localhost를 입력하면 된다.)
데이터베이스 사용자: owncloud
데이터베이스 암호: password (혹은 직접 설정한 암호)
데이터베이스 이름: owncloud
여기까지 진행하면 사용하는데는 문제가 없으나 데이터 저장공간을 마운트된 /RAID5로 변경 하고싶다. (혹은 또 다른 외부 마운트된 스토레지, 예로 외장하드 같은 경우) 그래서 [4] 문서를 따라 데이터를 옮겨주고 데이터베이스를 수정하는 작업을 추가로 진행해야 한다.
*시작전 ownCloud는 기본적으로 /var/www/owncloud/data 를 기본 저장 디렉토리로 사용을 한다. 그림 2 처럼 이를 확인하고 내가 추가한 관리자명으로 된 디렉토리도 잘 있는지 확인하고 작업을 진행한다.
* 시작전 사용할 외부 스토레지가 잘 마운트 되어있고 재부팅시 자동으로 마운트 되도록 잘 설정했는지 확인한다.
1. 아파치 서비스를 중단한다.
$ sudo systemctl stop apache2
2. 관리자 모드를 활성화 한다.
$ sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
3. 기존에 있는 데이터를 옮긴다.
$ sudo rsync -avz /var/www/owncloud/data /RAID5
/RAID5 에 잘 옮겨졌는지 확인하고 다음 작업을 진행한다.
4. /RAID5의 모든파일의 권한을 www-data에 넘겨준다.
$ sudo chown -R www-data:www-data /RAID5
5. 변경된 경로를 적용하기 위한 설정수정을 진행한다.
5.1 데이터베이스 수정
$ sudo mysql
MariaDB [(none)]> use owncloud;
MariaDB [(none)]> UPDATE oc_storages SET id='local::/RAID5/data/' WHERE id='local::/var/www/owncloud/data/';
MariaDB [(none)]> UPDATE oc_accounts SET home='/RAID5/data/admin' WHERE id=1;
5.2 ownCloud 설정수정
$ sudo -u www-data php /var/www/owncloud/occ config:app:set --value /RAID5/data fictitious datadir
$ sudo vi /var/www/owncloud/config/config.php
> 'datadirectory' => '/var/www/owncloud/data', 를 'datadirectory' => '/RAID5/data', 로 수정
6. 관리자모드 해제 및 아파치 서비스를 시작한다.
$ sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
$ sudo systemctl start apache2
여기까지 진행하면 그림 3, 그림 4 와 같이 문제없이 마운트한 외부 스토레지에 데이터 이동이 완료되고 이제부터 /RAID5에만 저장된다. (기본적으로 들어있는 파일은 새로 생성된 파일들의 확실한 구분을 위해 다 지워버렸다.)
참고문헌
1. ownCloud GitHub Organizations, Available online github.com/owncloud 11 Feb 2021.
2. Install ownCloud on Ubuntu 20.04, Available online doc.owncloud.com/server/10.6/admin_manual/installation/quick_guides/ubuntu_20_04.html 11 Feb 2021.
3. Install package owncloud-complete-files, Avaiable online download.owncloud.org/download/repositories/production/owncloud/ 11 Feb 2021.
4. How To Manually Move a Data Directory, Available online doc.owncloud.com/server/admin_manual/maintenance/manually-moving-data-folders.html 11 Feb 2021.
'공부 또는 팁' 카테고리의 다른 글
Pseudo Relevance Feedback 간단 요약 (0) | 2021.02.18 |
---|---|
wget으로 Dropbox & GoogleDrive & ownCloud 으로부터 데이터 가져오기 (0) | 2021.02.16 |
ownCloud 수동으로 파일 추가하기 (0) | 2021.02.10 |
git 사용에 있어서 간단한 팁 (0) | 2021.01.29 |
ubuntu 20.04 에 CUDA 11.0 설치 및 Pytorch 1.7.1 설치 (0) | 2020.12.24 |