ownCloud

사전준비 사항으로 LAMP(Linux Apache MySQL PHP) 설치가 필요하다. 이 포스팅은 OS가 Ubuntu 18.04 을 기준으로 설치 과정을 설명한다.

1. ownCloud 설치 

apt에 ownCloud 저장소 키를 추가한다.

$ sudo wget -nv https://download.owncloud.org/download/repositories/production/Ubuntu_18.04/Release.key -O Release.key $ 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

필요한 PHP 패키지를 추가로 설치한다.
$ sudo apt install php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip php-mysql

2. ownCloud 패키지를 설치한다.

$ sudo apt install owncloud-files

sudo apt 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 0 not upgraded. 
Need to get 16.5 MB of archives. After this operation, 102 MB of additional disk space will be used. 
Get:1 https://download.owncloud.org/download/repositories/production/Ubuntu_18.04 owncloud-files 10.4.1-1+1.1 [16.5 MB] Fetched 16.5 MB in 9s (1921 kB/s) Selecting previously unselected package owncloud-files. (Reading database … 85839 files and directories currently installed.) Preparing to unpack …/owncloud-files_10.4.1-1+1.1_all.deb … Unpacking owncloud-files (10.4.1-1+1.1) … Setting up owncloud-files (10.4.1-1+1.1) …

ownCloud 패키지는 /var/www/owncloud에 설치된다.

3. 아파치 Apache 서버 설정 

/etc/apache2/sites-available/에 있는 000-default.conf 설정 파일을 복사해 owncloud 설치 위치로 경로만 바꿔서 써보자.

$ 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은 # 주석을 지워주고, 원하는 도메인을 적어준다. (예, ㅡmyCloud.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 <계정이름>@local
host; mysql> flush privileges; mysql> exit;

 5. ownCloud 접속 

1) 서버 IP 또는 설정한 FQDN으로 접속 한다.

이전에 설정한 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의 튜토리얼을 참고하여 문제를 해결했다.

https://doc.owncloud.org/server/10.4/admin_manual/maintenance/manually-moving-data-folders.html?highlight=move%20data%20directory

How To Manually Move a Data Directory

doc.owncloud.com

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 | OCUserDatabase | /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으로 모든 플랫폼에서 동일한 경로를 공유할 수 있을 것 같다.

Leave a Reply

Your email address will not be published. Required fields are marked *