내 데이타는 내 통제하에 - 나만의 클라우드 ownCloud 를 RHEL/CentOS 에 설치


소개

ownCloud 는 PHP 로 개발된 웹 기반 파일 공유 서비스이다. Dropbox 나 Google Drive, One Drive 같은 역할을 수행하며 서버용 소프트웨어가 공개되어 있고 내가 소유한 서버에서 구동할 수 있으므로 개인 자료나 민감한 데이타를 올려야 할 좋은 대안이 될 수 있다.

RHEL/CentOS 6 에서 설치하는 방법에 대해서 정리해 보자.

사전 작업

PHP 로 개발 되었으니 PHP 인터프리터가 필요하다. 최소한의 PHP 버전은 5.4 이며 7 이상을 권장하고 있다. RHEL/CentOS 6 은 PHP 5.3.3 이므로 다른 repository  에서 높은 버전의 PHP 를 설치해야 한다.

PHP 설치

  1. ownCloud 가 필요로 하는 패키지를 설치한다.

    yum install   php56w-gd  php56w-process php56w-xml
    yum install   php70w-gd  php70w-process php70w-xml
  2. PHP 의 upload 파일 크기 제한을 변경한다.(php POST max upload size 조정)


DBMS 설치

SQLite, MySQ, MariaDB 를 지원하지만 SQLite 는 혼자 쓰지 않는 이상 동시성 제어와 확장성 이슈가 있으므로 MySQL 이나 MariaDB 를 설치 하는게 좋다.

DBMS 설치후에 owncloud 가 사용할 계정을 만들어 주자.

CREATE DATABASE owncloud CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'my_password';

Server 설치

패키지 설치

  1. 안정버전 다운로드

    wget https://download.owncloud.org/community/owncloud-10.0.6.tar.bz2
    tar jxvf owncloud-10*tar.bz2 -C /var/www/owncloud
  2. 설정 폴더 소유자를 웹 서버 계정으로 변경하고 파일 저장 폴더 생성 및 권한 조정

    chown -R apache:apache config/ apps/
    mkdir data
    chown -R apache:apache data/
    chown -R nginx:nginx config/ apps/
    mkdir data
    chown -R nginx:nginx data/

웹서버 연동

웹서버 설정

아파치 웹서버 설정 파일에 다음 내용을 추가한다.

<Directory /var/www/html/owncloud>
  AllowOverride All
</Directory>

AllowOverride 가 All 이므로 .htaccess 를 사용하겠다는 의미이므로 실제 설정은 /var/www/html/owncloud/.htaccess 에 있다. 


  1. conf/httpd.conf 에 다음 가상호스트 내용을 넣어주고 아파치를 재구동하면 브라우저로 연결할 수 있다.

    <VirtualHost *:80>
        ServerName owncloud.example.com
        ErrorLog logs/owncloud-error_log
        CustomLog logs/owncloud-access_log common
        DocumentRoot "/var/www/html/owncloud/"
    </VirtualHost>
  2. 아파치 웹서버 재구동

    service httpd restart
  3. 브라우저로 연결하면 다음과 같은 화면이 표시 된다.
     
  4. 사용자 이름과 암호를 설정하고 하단의 "스토리지 & 데이타 베이스" 를 클릭한다.
     
  5. "MySQ/MariaDB" 를 클릭하고 DB 정보를 입력하고 "설치 완료"를 클릭하면 설치가 완료된다.


SSL 로 연결

  1. 클라우드 서비스이며 중요한 데이타가 있을 수 있으므로 보안을 위해 HTTPS 로 연결하는 게 좋다. 클라이언트가 HTTP 로 연결할 경우 HTTPS 로 포워딩 하도록 conf/httpd.conf 를 다음과 같이 수정하자.

    <VirtualHost *:80>
        ServerName owncloud.example.com
        ErrorLog logs/owncloud-error_log
        CustomLog logs/owncloud-access_log common
     
        RewriteEngine on
        RewriteCond %{HTTPS} !=on
    	RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]
    </VirtualHost>
  2. /etc/httpd/conf.d/ssl.conf 설정하자.  SSLCertificateFile, SSLCertificateKeyFile 은 환경에 맞게 수정해야 한다.

    <VirtualHost *:443>
      SSLEngine on
      SSLCipherSuite SSLv3:TLSv1:+HIGH:!SSLv2:!MD5:!MEDIUM:!LOW:!EXP:!ADH:!eNULL:!aNULL
      SSLCertificateFile    /etc/pki/tls/certs/localhost.crt
      SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
      ServerName owncloud.example.com
      DocumentRoot "/var/www/html/owncloud/"
      LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
      ErrorLog  logs/owncloud-ssl-error.log
      CustomLog logs/owncloud-sslaccess.log combined
    </VirtualHost>
  3. 아파치 웹서버를 재구동한다.

    service httpd restart


Desktop Client 설치

https://owncloud.org/install/ 에서 "Install Desktop Clients"  메뉴에서 사용하는 OS 에 맞는 인스톨러를 다운 받아서 설치하자.

현재 Windows, Mac OS X, Linux 를 지원하고 있다.


같이 보기


Ref