강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
Sulinux17 에서 Owncloud 설치 및 기본운영
조회 : 6,170  




<1. 개요>

 Owncloud 는 PHP로 개발된 웹 기반 파일 저장/공유 서비스로, 사용자들이 관리하는 서버에 비용없이 설치하여 사용 가능합니다.
PHP,SQLite, Mysql, PostSQL DB와 연동이 가능하며, 이를 지원 하는 모든 시스템에 설치할수 있습니다.
웹 기반으로 서버 시스템의 운영체제에 묶여있지 않은 부분이 장점이며
파일매니저나 그룹웨어 프로그램을 통해 관리가 가능합니다.

상용 버전 (엔터프라이즈 버전)은 모바일을 통한 관리와 파일 검색 등 다양한 기능이 추가됩니다.

설치 방법은 통합 패키지 설치 (RPM, yum)를 이용하거나 Docker 를 이용하는 방법이 있지만,
Sulinux17 설치 후 소스 파일을  이용해 연결하는 사례를 설명해보려 합니다. 아래는 설치 전 환경 입니다.

- OS : SULinux 2017 64x
- Apache 2.4.6
- PHP 5.4
- mysql 5.5.56-MariaDB

※ Owncloud 사용시 php5.6 / php 7.0 버전 이상을 권장하기 때문에,
    이번 사례에서는 기존에 설치되어있는 php 5.4 버전을 삭제 후 php 7.0 버전 설치를 진행하겠습니다.
    PHP 버전 업데이트시 기존에 작동되고 있는 프로그램/모듈과 충돌 할 수 있기 때문에
    삭제 전 의존성 / 충돌 확인을 해주신 후 진행해 주시기 바랍니다.


<2. 설치>

- php 7.0 다운로드를 위해 epel 레파지토리를 설치합니다.
        yum install epel-release
        cd /etc/yum.repos.d/
        wget http://rpms.famillecollet.com/enterprise/remi.repo


- 기존에 설치되어있는 php 5.4 버전을 삭제합니다.
        yum remove php-*
        yum remove php-common mod_php php-cli


- yum 으로 php 7 버전과 추가 모듈들을 설치합니다.
        yum install php70w

        yum install php70w-cli php70w-common php70w-dba php70w-devel php70w-fpm php70w-gd php70w-imap php70w-ldap php70w-mbstring php70w-mcrypt php70w-mysqlnd php70w-odbc php70w-opcache php70w-pdo php70w-pdo_dblib php70w-pear php70w-pecl-imagick php70w-pecl-imagick-devel php70w-pgsql php70w-phpdbg php70w-process php70w-snmp php70w-soap php70w-tidy php70w-xml php70w-xmlrpc

- 설치 후 PHP 버전을 확인합니다.
      php -v

- PHP 설치가 완료되었다면 owncloud 소스 파일을 다운 받은 후 압축을 해제합니다.
  작성일 기준 최신버전인 owncloud 10.0.7 버전을 설치하겠습니다.
        wget https://download.owncloud.org/community/owncloud-10.0.7.tar.bz2
        tar xvfj owncloud-10.0.7.tar.bz2

 
- 압축 해제 후 사용하는 웹서버 계정으로 소유권을 설정합니다.
  이번 사례에서는 apache를 사용하고 있으니, apache 계정으로 소유권을 설정하겠습니다.
        mv ./owncloud-10.0.7 ./owncloud
        chown -R apache:apache ./owncloud


- 사용을 위해 웹페이지 웹사이트 홈 디렉토리로 파일들을 이동시키겠습니다.
        mv ./owncloud /var/www/html/

- 이제 owncloud를 사용할 DB와 계정을 생성하겠습니다. DB 연동을 위해  접속계정과 권한이 필요합니다.
아래 예를 참조하셔서 접속대상,계정이름,비밀번호/권한을 설정해주시길 바랍니다.
       mysql -uroot -p
       비밀번호 입력

        create database owncloud;
        alter database owncloud default character set utf8;


        insert into user(host,user,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('localhost','oc_admin',password('Password'),'','','');

        update user set password=password('Password') where user='oc_admin';

        insert into db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv) values ('localhost','owncloud','oc_admin','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

        flush privileges;


- DB 접근을 위해 방화벽 설정이 필요합니다. Sulinux17 에서는 firewalld 를 사용하며,
  외부 접속을 위해 DB 포트가 열려있는지 확인해야 합니다 (열려 있다면 다음으로 넘어가주시면 됩니다)
        netstat -nlp | grep mysqld
                ( mysql 포트번호 확인
)
        ps -ef | grep mysqld
        firewall-cmd --zone=public --add-port=3306/tcp --permanent     
               ( mysql 접속을 위해 3306 포트 개방. public 존 영구반영)
        firewall-cmd --reload                                           
               (방화벽 설정 갱신)
        iptables -nL


- 아파치 설정파일에서 접근허용 설정을 해 줍니다.
   Sulinux2017 설치 직후 아파치 설정파일의 기본경로는 /etc/httpd/conf/httpd.conf 입니다.
       vi httpd.conf
       –--------------------------------------------------
        DocumentRoot "설치할 웹페이지 디렉토리"
       
        <Directory "설치할 웹페이지 디렉토리">
            AllowOverride All                       // 접근 허용. 새로운 인증방식 우선 적용
            Require all granted                     // 모든 요청 허용
            Options FollowSymLinks                  // 심볼링크 허용 (브라우저에서 링크파일 경로 확인가능)
        </Directory>
–--------------------------------------------------

- 설정파일의 내용에 잘못된 부분이 있는지 확인한 후 아파치를 재시작 해 줍니다.
       apachectl -t
       systemctl restart httpd


- 이제 웹 브라우저에서 owncloud 를 DB에 연동하겠습니다.
   위에서 지정한 클라우드 서버로 이용할 서버의 IP나 도메인명 을 입력해봅시다.



- 설정에 문제가 없다면 관리자 계정 설정 화면이 뜹니다.
   DB 설정시 생성한 계정/비밀번호 입력 후 아래 DB 설정에서 mysql/mariadb 을 선택 해 주신 후,
   DB 정보 및 localhost:DB포트번호 를 입력해 줍시다.


※ 연결불가 시 에러코드를 확인할 수 있습니다. 주로 뜨는 에러 사례와 해결방법은 아래와 같습니다.
    > Php-intl 관련 에러 => php 확장모듈이 설치되어 있지 않아 발생합니다.
       해당 모듈 설치 후 (yum install php-intl) php에서 모듈이 호출되는지 확인해 봅시다.

   > access 에러 => DB에서 계정/권한 생성이 제대로 되지 않은 사례입니다.
     DB에서 접속가능한 외부연결 도메인/계정/권한/방화벽 설정을 확인해 봅시다.



- 설정한 계정/PW 입력 시 관리자 페이지로 접속이 가능합니다.


<3. 사용 방법>



- 상단에 있는 + 버튼을 클릭하면 업로드가 가능하며, 파일 클릭시 다운로드를 할 수 있습니다.
  파일명 우측에 있는 버튼 클릭 시 공유 설정과 상세 설정(파일명 변경/삭제 등)이 가능합니다.

※  기본적으로 Deleted files 라는 앱이 실행되고 있어, 웹에서 파일을 삭제하더라도
     서버내의 파일은  /웹문서디렉토리/data/관리자계정/files_trashbin 에 보관됩니다.
     설정을 해제하고 싶으시다면 아래 관리자-앱 설정에서 사용 해제가 가능합니다.

- 우측 상단의 계정 이름을 클릭하면 설정 및 사용자 계정 편집이 가능합니다.
  웹 브라우저 상에서 어떤 설정이 가능한지 간략하게 확인해보겠습니다.



1. 개인 - 일반 : owncloud 계정 추가와 상세정보 (이름/사진/이메일설정/암호 등...) 변경이 가능합니다.
          상단에 현재 사용하고 있는 용량을 확인하실 수 있습니다.
          이 설정은 php.ini 에서의 설정값 (upload_max_filesize 등) 에 영향을 받지 않습니다.
 
         업로드 용량제한은 무제한으로 설정되어있으나
         업로드한 파일들은 설치한 웹페이지 디렉토리/data/계정명/files  디렉토리에 저장됩니다.
         파일 업로드시 오류가 발생한다면 서버의 디스크 용량과 디렉토리 권한을 확인해주길 바랍니다.



2. 개인 - 저장소 : 관리자-저장소에서 설정한 외부 저장소 확인이 가능합니다.



3. 개인 – 보안 : 신용할수 있는  웹사이트 설정, 연결된 브라우저 확인, 모바일 앱 접속시 사용할 비밀번호를 설정합니다.




4. 관리자-앱 : 웹 환경에서 사용할 추가 모듈을 설정합니다.
                        Market 승인 시 기본 내장된 모듈과 여러 앱들의 설치 및 사용을 설정할 수 있습니다.
                        좌측 상단의 메뉴-Market 에서 설치된 앱들의 설정이 가능합니다.



5. 관리자-일반 : 크론 / 메일서버 / 로그 설정이 가능합니다.



6. 관리자-저장소 : 외부 저장소 활성화 및 마운트 설정이 가능합니다.



7. 관리자-암호화 : 중요한 파일을 저장할 경우 업로드 할 파일을 암호화 할 것을 권장합니다.
                             '암호화 사용' 기능을 활성화 하기 전에, 관리자-앱 메뉴에서 암호화 모듈을 사용 활성화 시켜야 적용됩니다.



8. 관리자-공유 : 생성한 계정 별로 업로드한 파일들의 공유에 대한 설정이 가능합니다.




이상으로 Owncloud의 간단한 설치 및 운영에 대해 간단히 알아보았습니다. 
연동되는 앱들의 종류가 다양하지 않으며 모바일 연동이 유료인 점은 아쉬웠지만,
설치 및 조작이 간단하고 웹 환경으로 구성되어 화면이 직관적이며 파일 업/다운로드 속도가 빠른 점이 만족스러웠습니다.

대부분의 프로젝트에서 클라우드를 사용하는 요즘 추세에서
무료로 유용하게 사용할 수 있는 프로그램이라 생각됩니다.

감사합니다.


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1877


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
천수녕
1. 이름 : 천수녕
2. email : snchun골뺑이linux.co.kr
3. 소속 : (주)에스유소프트