0. 프롤로그
OwnCloud시놀로지에서는 기본으로 포함되어 있는 일종의 웹하드다.
시놀로지에서의 기본 설치법은 정말 간단하다. 하지만 이것만 가지고는 안된다(진짜 짜증나는 부분. 모르는 사람은 쓰지도 말라는건지..)
시놀로지의 고급형에서는 링크하드라는 웹하드를 설치할 수 있는데(CPU가 인텔인 경우만) 이게 정말 괜찮다고 하지만, 문제는 내 하드인 215j에서는 링크하드가 안깔린다.
그래서 찾아본게 pydio와 ownCloud다. 여기서는 owncloud설치에 대해 얘기해보고자 한다.
1. owncloud설치 사전작업
무조건 설치만 해서 되는게 아니라 몇가지 사전 작업이 필요하다. 왜 자기네 패키지로 올려놓고서 이런 복잡한 작업을 하게 하는지 이해가 되진 않는다. (뭐, 그냥 주는것만으로도 감사해야 하나..?)
첫번째는 공유폴더를 만들어주는 것이다. 공유폴더 정도는 다들 만들줄 아실테니 길게 설명은 안하겠다.
공유폴더를 만들때는 각자의 사정이 있겠지만, 하드가 2개 이상이고 논리적으로도 2개 이상(볼륨이 1 초과하는 경우)에는 다른 하드에 부여하는 것도 나쁘진 않을거 같다. 특히 외부 친구들이나 업무적으로 사용할때는 공간의 나눔은 매우 중요하다.
지금은 volume2에 owncloud 공유폴더를 만들었다.
두번째는 maria DB, phpMyAdmin을 설치한다.(이미 되어 있으면 패스한다.)
phpMyAdmin의 주의점은 반드시 한번 실행해서 들어간 다음 root의 암호를 바꾸라는 것이다. 기본이 [암호없음]이기 때문에 반드시 들어가서 암호를 변경해야 후환이 없다. 만약 나중에 바꾸면 owncloud에도 문제가 될거 같다..(뭐 물론 암호를 다시 물어볼거 같긴 하지만..)
2. owncolud 설치
패키지센터 - 커뮤니티에 가면 owncolud가 있다. 일단 그냥. 설치하면 된다. 그러면 다운로드가 시작된다. 다운로드는 상황에 따라서 무지무지 오래 걸릴 수도 있다.
다운로드가 완료되면 설치가 시작된다. 설치의 시작은 두가지 암호에 대한 설정이다.
첫번째는 root의 암호를 넣으라는 건데, 암호를 처음부터 세팅하지 않았다면 넘어가도 될거 같다(물론 안해봤다. 하지만 보안을 위해서라도 phpMyAdmin에서 암호를 설정하기를 권한다).
phpMyAdmin에서 설정한 root의 암호를 넣으면 된다.
두번째는 owncloud의 암호를 넣으라는 거다. owncloud 사용자를 만들거니 그 암호를 넣으라는 것으로 보인다. 당연히 암호를 설정하고 다음을 누른다.
다음을 누르면 말그대로 admin을 설정하는 화면이 나온다. 꼭 user name을 admin으로 안해도 된다. 워낙 admin이 기본이다보니, 해킹의 첫번째 목표가 되어버린다.
고로 가능하면 다른거로 바꿔주자.(물론 잊어먹으면 곤란하다..) 그리고 admin역할 ID의 암호를 설정해 준다.
그 밑의 것은 데이터(파일들)을 어디다 저장할지를 묻는 것이다. 이 경로를 아까 설정한 공유폴더로 설정하면 된다. 공유폴더명이 owncloud가 아니면 폴더명에 맞게 고쳐주면 될거다. 화면은 volume1(기본값)으로 되어 있으나 이걸 volume2로 수정하면 volume2로 설정된다.
다음을 누르면 최종화면이 나온다.
여기서 [적용]버튼을 누르면 지금까지 입력했던 각종암호를 테스트하고 문제가 없으면 완료시키게 된다. 그런데 root의 암호가 틀리거나 하는 문제가 발생되면 당연히 더이상 진행하지 못한다. 그러면 [뒤로] 버튼을 눌러서 암호를 수정하면 된다.
왜 굳이 처음 암호를 넣을때 점검을 안하는지 모르겠다.(뭐.. 그냥 사용자에 대한 예의가 없는 걸로.. 암호도 모르는 유저하고는 상대하기도 싫은가..)
모든 작업이 완료되면 패키지설치화면에 owncloud가 [설치]에서 [열기]로 바뀐다. 바로 열기를 클릭한다. 만약 설치가 잘 되었다면 다음의 화면이 나올 것이다. 바로 [X]를 눌러서 닫는다.
잘 설치가 되었다면 로그인 창이 뜰것이고, 설치에 문제가 있으면 문제점을 보일 것이다.
발생할만한 가장 큰문제점이 아까 설정한 공유폴더를 owncloud가 사용할 수 없다고 메시지를 내는 것이다.
말그대로 권한이 없는건데, 이건 puttty등을 사용해서 접속한 다음, 공유폴더의 권한을 777로 바꿔주면 된다.(putty사용법은 검색해보세...)
이때 주의할 점은 SSH로 NAS에 접속할때는 반드시 root로 접속해야 한다. admin으로 하면 권한이 없다고 하니(로그인은 된다), 반드시 root로 접속을 해야 한다.
물론, 시놀로지 사용자에는 원래 root가 없다. 그냥 root에 admin의 암호를 주면 된다.
3. ownCloud실행
모든 작업이 완료되면 ownCloud에 접속해보자.
ownCloud에 접속하는 방법은 NAS주소에 owncloud를 붙이면 된다.
http://나스주소/ownCloud 라고 하면 된다. 다만 이부분은 내부 네트워크 환경망에서 접속할때 사용 방법이고 외부에서 접속하면 또 몇가지 추가적인 방법이 필요하다. 이건 후에 설명하겠다.
접속을 하게 되면 위와 같은 최초 화면이 나온다. 아직 사용법은 잘 모르겠고 중요한 것은 우리가 하고자 하는 일에 대한 정의다.(뭐가 이리 거창한지..)
여기서 추가적인 작업을 해야 하는데, 상단에 보면 [새로만들기] 옆에 위로 향하는 화살표가 하나 보인다. 딱 감이 오지 않는가??
업로드 버튼이다. 그런데, 마우스를 가져다 대면 캡쳐에서 보이는 바와 같이 최대 513MB라고 나올거다.(원래 이게 정상이다..)
웹하드를 설치하고자 하는데 위 이미지에서 보듯이 업로드 가능용량이 513M?? 이건 옛날 CD1장도 안되는 사이즈다. (이래선 동영상 연동이 안된다는..) 이걸 수정하는게 또 일이다.
4. Putty를 통한 용량 수정
뭐 그냥 쓸수도 있겠지만 NAS를 사용하고 대용량 파일을 사용하기 위함이니 용량을 늘려보자.
첫번째는 php.ini를 수정해야 한다. 메모장을 하나 열어서 다음을 저장한다. 딱 한줄이다. 파일명은 전통을 따라서 phpinfo.php 로 만들어준다.
<? phpinfo(); ?>
이 파일을 NAS의 web폴더에 넣어준다.
그리고 그 파일을 웹으로 열어준다. 여는 방법은 만약 나스의 IP가 192.168.0.100 이라면..
http://192.168.0.100/phpinfo.php
그러면 php의 정보가 쭉 나열된다.(이걸 몰라서 pydio설치할 때는 온갖 삽질을 했다는..) 이중 다른건 잘 모르겠고 Loaded Configuration File 을 찾는다. 이게 php.ini의 위치다. 이걸 수정해야 한다. 다른 프로그램(config Editor같은거)을 이용하면 다른 위치의 내용을 뿌려주는 경우가 간혹 있으니 조심해야 한다.
정보를 알아냈으면 putty를 사용해보자.
실제 입력방법중 가장 간단한게 디렉토리를 바꾸는건데, 가장 위로 가는 방법이 다음과 같다. cd 디렉토리 변경인데, cd ..(cd 다음에 한칸 띄고 .. 이다)을 입력하고 커서 위쪽키를 누르면 직전 입력한 명령어가 나오니 커서 위쪽키를 누르고 엔터를 몇번 반복한다. 그다음 ls -a 는 현재 폴더의 내용을 전부다 보여주는 명령어다.
여기서 다시 cd를 써서 아까 php.ini의 경로로 간다.
그다음..
vi를 써서 수정해야 한다. vi는 유닉스(또는 리눅스)용 문서 편집기다. 다만, 처음엔 좀 어렵겠지만 몇번 써보면 간단한다.(그리고 생각보다 간단하고 무지 강력한 에디터다.)
다시 돌아와서.. 원하는 폴더까지 이동을 했으면 vi php.ini를 입력하면 php.ini가 열린다.
그중 다음을 찾는다.
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
serialize_precision = 17
disable_functions =
disable_classes =
zend.enable_gc = On
expose_php = Off
max_execution_time = 240
memory_limit = 512M
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
variables_order = "GPCS"
request_order = "GP"
register_argc_argv = Off
auto_globals_jit = On
default_mimetype = "text/html"
default_charset = "UTF-8"
include_path = "."
extension_dir = "/usr/lib/php/modules"
sys_temp_dir = "/var/services/tmp"
enable_dl = Off
file_uploads = On
upload_tmp_dir = "/var/services/tmp"
upload_max_filesize = 2G
post_max_size = 2G
max_input_time = 20000
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
이중 3가지만 수정한다.
upload_max_filesize = 2G
post_max_size = 2G
max_input_time = 20000
"=" 다음 값은 다를 수도 있으니 앞의 문자열만 찾는다.
첫번째는 업로드 시간이다. 파일이 크면 당연히 오래 걸리니 한 20000으로 바꿔준다. 단위는 초다.
두번째, 세번째는 업로드 사이즈다. 당연히 이 두가지를 키워야 한다. 기본은 byte이며 간단하게 2G로 둘다 바꿔주면 된다.2000M로 써도 된다.
실제 수정방법은 vi가 실행되었으면 [i]를 누르면 수정모드로 들어간다.(이전에는 방향키 외에는 입력키가 먹지 않는다.)
원하는 위치로 가서 수정한 다음, 모든 수정이 완료되면 [ESC]를 눌러서 수정모드를 종료한다.
그리고 [:]을 입력하면 맨 밑에 : 이 보인다.
여기서 wq를 입력하고 엔터하면 수정내역이 저장된다.
이렇게 php.ini가 수정되면 pydio는 업로드 가능 사이즈가 확 변한다. 그런데 owncolud는 하나더 수정해야 한다.
다시 cd .. 을 반복해서 최상위로 돌아간다.
그리고 아까 owncolud설치했던 폴더로 들어간다. 경로는 [volumeX]/web/owncloud가 기본이다.(volumeX에서 X는 논리적 드라이브 번호다) 여기서 아까처럼 vi를 써서 파일을 연다.
vi .user.ini
아까 php.ini를 수정하는 것과 동일한 방법으로 다음 두줄을 수정한다.
post_max_size=2G
memory_limit=512M
mbstring.func_overload=0
always_populate_raw_post_data=-1
default_charset='UTF-8'
output_buffering=off
역시 513M를 원하는 사이즈로 바꿔준다. 여기서는 2G로 설정한다. ESC키를 누르고 :wq해서 저장한다.
여기까지 완료하면 일단, NAS를 리부팅한다. 명령어중에 webserver만 리부팅하는 명령어가 있다고 하는데 걍.. DSM에서 [다시시작]하면 된다.
리부팅이 되면, owncloud를 웹화면에서 다시 실행해본다.
http://192.168.0.100/owncloud (당연하겠지만 앞의 주소는 각자의 상황에 맞춰서...)
최초 설정한 admin(또는 admin에 해당하는 ID)와 암호를 넣어서 로그인한다. 아까 업로드 사이즈를 확인해보면 용량이 업되어 있는 것을 볼 수 있을 것이다.
그러면 기본적인 설치는 전부 완료된 것이다.
5. 외부에서 ownCloud사용하기
pydio같은 경우는 설치가 완료되면 외부 도메인을 사용하여 여는 것에 대해 관대하다. 그러나, ownCloud는 그렇지 않다.
우리가 보통 외부에서 집에 있는 NAS에 접속하기 위해서는 나에게 부여된 유동IP를 알아내기 위해 DDNS등을 사용하고 있다. 그런데 알다시피 DDNS도 도메인의 일종이다. pydio는 그냥 열면 열리나, ownCloud같은 경우는 해당 도메인이 적절한지를 꼭 확인하고 등록해줘야 한다.
설치가 잘 되어 있으면 도메인을 추가할 것인지 묻고 바로 등록해주나 설치에 문제가 있다면 직접 수정해줘야 한다.
마찬가지로 vi를 사용하기 위해 putty로 접속한 다음 web폴더 안에 ownloud/config폴더를 찾아간다.
그안에 있는 config.php파일을 vi로 연다.
$CONFIG = array (
'instanceid' => 'ocm1a8woxqg3',
'passwordsalt' => 'xhxn6KzYGkIpRjR3qr20/jMD0UsuEM',
'secret' => 'XU45SR+pv6pLkRm4Wls2t+m+9vdvcrrCBg3Tht+/zdndcFDg',
'trusted_domains' =>
array (
0 => 'xxxxxxxx.synology.me',
1 => 'xxxxxxxx.iptime.org',
),
'datadirectory' => '/volume2/owncloud',
'overwrite.cli.url' => 'http://xxxxxxxxx.synology.me/owncloud',
'dbtype' => 'mysql',
'version' => '8.1.3.0',
'dbname' => 'owncloud',
'dbhost' => 'localhost',
'dbtableprefix' => '',
'dbuser' => 'owncloud',
'dbpassword' => 'adadadadad',
'logtimezone' => 'UTC',
'installed' => true,
'theme' => '',
'maintenance' => false,
안에 보면 trusted_domains가 있는데 여기에 원하는 도메인을 추가해 주면 된다.내부망는 굳이 등록안해도 되고 그외에 DDNS나 synology용 DDNS의 도메인은 등록해야 사용이 가능하다.
아까도 얘기했지만, pydio같은 경우는 원래 가지고 있던 정식 도메인이 있어서 iframe를 이용하여 내 nas의 DDNS가 대놓고 노출되지 않도록 하였으나 ownCloud같은 경우는 iframe를 사용하면 아예 로딩이 되지 않는다. 그래서 도메인 업체에서 포워드 할때 도메인을 고정시키지 말고 변경되도록 해야 한다.
결국 owncould사용시에는 내 DDNS를 노출시킬 수 밖에 없는 문제가 있다는..
6. 마치며
ownCloud를 설치후 많이 사용해보진 않았다. pydio와 비교해 보면..
장점으로는 확실히 pydio보단 빠르다. pydio는 접속을 시도하면 확실히 느리지만 ownCloud는 로그인창도 많이 빠르고 안에 들어가는 것도 확실히 빠르다. 그리고 간결하고 직관적이다.
단점으로는 pydio는 안드로이드 핸폰 앱이 무료인데 owncloud는 유료인게 굳이 단점이라면 단점이겠다.
나머지는 좀 써봐야 하겠다.
혹시 pydio, ownCloud말고 추천할만한 웹하드가 있다면 추천좀 부탁한다.(링크하드 뺴고... ㅠㅠ)