owncloud

ownCloud1)드랍박스와 유사한 클라우드 저장소를 자신의 서버에 설치할 수 있는 프로그램이다. AGPLv3 라이선스로 누구나 이용할 수 있다.

클라우드 서비스는 매우 편리하지만 감청 문제가 이슈가 되고 있다. 자신만의 서버에 자신만의 클라우드 서비스를 설치하면 이 문제를 해결할 수 있다. 물론 서버를 압수당하면 별 수 없지만, 적어도 자신도 모르는 사이에 감청대상이 되는 것은 피할 수 있다.

owncloud는 자신만의 클라우드를 이용할 수 있게 해 주는 프로그램이다. 드랍박스와 거의 유사한 서비스를 이용할 수 있다.

우리나라에서도 국가정보원이 대상에게 통보 없이 감청하는 문제가 이슈가 되고 있고, 미국 국가안보국(National Security Agency, NSA)에서 사실상 무제한의 감청 권한을 가지고 실제로 실행하고 있다. 또한 드랍박스, 구글, MS 등이 아동 포르노 자료를 감시한다는 명목 하에 클라우드 내의 자료를 감시한다는 사실이 공개되기도 했다. 이는 프로그램을 이용하여 자동으로 찾는다고는 하지만 결국 최종 판단은 사람이 보고 내릴 수 밖에 없다는 현실을 볼 때, 자신의 자료가 언제든지 노출될 수 있음을 의미한다. owncloud는 이와 같은 문제점을 해결할 수 있는 개인 서버 클라우드 프로그램이다.

환경

일반적인 AMP 환경이면 설치할 수 있다. 사실 PHP와 MySQL만 지원하면 IIS, lighttpd, nginx 등이라도 상관 없다.

설치

PHP 프로그램이라 설치는 사실상 별 거 없다. 그냥 다운받아 압축을 풀고, 적당한 경로에 복사하면 끝이다. 보안이 걸린다면 SSL 설정에 조금 더 걸리는 정도다. 설치한 후 웹브라우저로 접속해서 관리자 계정을 만들면 즉시 사용할 수 있다.

업그레이드

7 -> 8

7.0.4, 8.0.3이 널리 쓰인다. 7.0.4가 더 안정적인 것 같지만 쓰다 보면 업데이트를 하라는 메시지가 계속 떠서 거슬린다. 업데이트의 기본 방법은 리눅스 패키지 매니저를 이용한 업그레이드 & 웹에서 클릭 몇번이다.

  • audo apt-get upgrade
  • 관리자 페이지 접속
  • 업데이트 센터 열기

그러나 호환성에 문제가 있어 업그레이드 후에 owncloud 서비스가 제대로 동작하지 않는다. 아파치 로그를 확인하면 다음과 같은 메시지를 볼 수 있다.

[:error] [pid xxxxx] [client xxx.xxx.xxx.xxx:xxxxx] PHP Fatal error: Class OCA\\Contacts\\Share\\Addressbook contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (OCP\\Share_Backend::isShareTypeAllowed) in /xxx/xxx/xxx/owncloud/apps/contacts/lib/share/addressbook.php on line xxx, referer : https://xxx.xxx.xxx/

owncloud 내 일부 앱(아마도 달력, 주소록) 관련 문제인 것 같다. 일단 급한 문제는 다음과 같이 해결할 수 있다.

sudo -u www-data php occ app:disable calendar
sudo -u www-data php occ app:disable contacts

일단 이렇게 하면 접속은 된다. 사용하지 않는 기능이라 이렇게 쓰고 있다. 삭제후 다시 설치하면 문제 없다고도 하지만 굳이 필요하지 않아서 이 상태로 쓰고 있다.

php5 환경에 따라 다음과 같은 오류가 발생할 수도 있다.

cURL is not installed, some functionality might not work. Please install the PHP cURL extension. Future versions will require installed cURL.

대부분의 기능은 동작하지만 경고 메시지는 귀찮다. 다음과 같이 cURL을 설치하여 해결할 수 있다.

sudo apt-get install php5-curl
sudo service apache2 reload

8.1 -> 8.2

8.1.0에서 8.2.1로 업데이트하는 것도 자동으로 되지 않았다.

홈페이지에서 제공하는 설명을 보면 다음과 같이 패키지를 업데이트 하면 자동으로 된다고 하였으나, 메이저 업데이트는 자동으로 지원하지 않는다는 예외(오류)가 발생하면서 업데이트가 중단된다.

sudo apt-get upgrade

결국 수동으로 해야 한다. 물론 수동으로 하는 방법도 설명하고 있다.

    1. 사실 기존 파일에 덮어쓰는게 아니라 기존 디렉토리 이름을 바꾸고, 새로 받은 것을 이용하는 방식이다
    2. 따라서 자동으로 백업본이 생긴다.
  1. owncloud를 관리 모드로 전환
    1. owncloud가 설치된 디렉토리에서 다음 실행
    2. sudo -u www-data php occ maintenance:mode –on
  2. owncloud 서버 다운로드
    1. 리눅스라면 무난하게 tar.bz2를 받으면 된다.
  3. 웹 서버 중지
    1. sudo service apache stop
  4. 기존 owncloud 디렉토리 이름 변경
    1. :!:이걸 백업본으로 생각해도 좋다.
    2. owncloud_backup라던가… 적당히
  5. 다운 받은 새 owncloud 파일 압축 해제
    1. tar xjf owncloud-latest.tar.bz2
    2. 해당 디렉토리에 owncloud 디렉토리가 생성된다.
  6. 압축을 해제한 새 owncluod를 기존 owncloud가 있던 곳으로 이동
    1. 기존 owncloud의 이름을 변경했는지 꼭 확인하자
    2. :!:기존 owncloud에서 config.php를 새로운 owncloud로 복사해야 한다.
    3. owncloud/config/config.php
  7. 기존 owncloud 디렉토리 내에 data/ 폴더를 두고 있었다면 이를 새 owncloud로 이동
    1. 별로 좋은 구조가 아니다. 이 기회에 다른 위치로 변경하고 config.php를 수정하는 것도 좋다.
  8. 기존 apps를 새로운 apps에 복사
  9. 웹서버 재시작
  10. owncloud 업그레이드 명령어 실행
    1. sudo -u apache php occ upgrade
    2. 시간이 꽤 걸릴 수 있다.
    3. 또는 홈페이지에 접속해서 실행 가능
    4. :!: 만약 똑같이 버전 문제로 업데이트가 되지 않는다면?
      1. config.php 파일을 열어 version을 8.2.0.0 으로 수정
      2. 'version' ⇒ '8.2.0.0',
      3. :!:다만 공식적인 방법은 아니므로 판단은 각자 알아서 한다.
  11. owncloud 관리 모드 해제
    1. sudo -u www-data php occ maintenance:mode –off
  12. :!:파일 소유자와 권한이 꼬여 있을 수 있으니 확인하자

요약하면

  1. 서버 다 중지 시키고
  2. 다운 받아서 압축 풀고
  3. 기존 owncloud 이름 바꾸고
  4. 압축 푼걸 기존 위치로 옮기고
  5. 서버 다 재실행 하면 끝

윈도우, 우분투, 맥OS, iOS, 안드로이드 등 다양한 클라이언트 프로그램을 지원한다. 단 스마트폰의 경우는 1달러 가량의 비용이 든다. 기부 개념이라고 생각하자. 정 싫다면 브라우저를 통해 접속할 수도 있다. WebDAV를 지원하는 다른 앱을 이용할 수도 있다.


댓글을 입력하세요. 위키 문법이 허용됩니다:
V Y T Y K