WebDAV

거래처의 파일관리를 위해서 여러가지 방법들을 찾아보고 공부하고 있습니다. 일단 라이센스 문제등이 있어 리눅스(우분투)계열을 이용할 방법을 찾아보고 있고 그중 하나인 WebDAV를 이용해봅니다.

Nginx 웹서버 설치

$ sudo apt install nginx nginx-full

WebDAV 디렉토리 생성 및 권한설정

$ sudo mkdir /var/www/html/dav

$ sudo chown www-data:www-data /var/www/html/dav

Nginx 설정

/etc/nginx/sites-available/default 파일이나 WebDAV를 적용하고 싶은 도메인 설정파일의 server 내에 다음 내용을 추가합니다.

charset utf-8; 

#WEBDAV location /webdav { 

autoindex on; 

alias /var/www/html/dav; 

auth_basic "Restricted Access"; 

auth_basic_user_file /etc/nginx/.htpasswd; 

client_body_temp_path /var/www/html/dav/temp; 

dav_methods PUT DELETE MKCOL COPY MOVE; 

dav_ext_methods PROPFIND OPTIONS; 

dav_access user:rw group:rw all:r; 

}

설정값으로는 다음과 같은것들이 있으니 적절히 조합해 사용하면 됩니다.


PROPFIND 웹의 파일 목록과 속성을 검색 

PROPPATCH 리소스의 속성을 변경 

MKCOL 디렉토리(폴더)를 생성 

COPY 파일복사 

MOVE 파일이동 

LOCK, UNLOCK 파일의 OVERWRITE 방지를 위한 락 

OPTIONS 서버가 지원하는 메소드를 출력 

DELETE 리소스와 컬렉션(파일과 디렉토리)을 삭제

WebDAV 사용자 추가

$ sudo htpasswd -c /etc/nginx/.htpasswd userid


htpasswd 실행명령이 없으면 apache2-utils 설치한 후 다시 명령을 실행 해 사용자를 추가합니다.

Nginx 재시작

$ sudo systemctl restart nginx

WebDAV 접근

http://IP주소/webdav 이후 설정한 ID/PASSWD


레지스트리의 값을 조정해 네트워크 드라이브로 연결해 사용하는것도 가능하다고 합니다. 다만 초보자가 접근하기 쉬운게 아니라서 다른 방법으로 합니다.


RaiDrive


FTP, GOOGLE DRIVE등을 탐색기를 이용해서 이용이 편리하도록 도와주는 프로그램입니다. WebDAV도 지원이 되네요.


https://www.raidrive.com/ko/ 로 들어가 RaiDrive를 다운로드 후 설치, 실행합니다.


추가 버튼을 누르고 WebDAV를 선택 / 위에서 설정한 값으로 세팅(http/https구분을 확실히 하고 포트는 기본 443으로 된것을 80으로 변경)합니다.


정상적으로 세팅되면 네트워크 드라이브가 잡힙니다.


CarotDAV라는 프로그램도 있습니다. 포터블 버전도 지원되니 특별한 환경에서 사용이 가능할듯 합니다. (프로그램 설치를 맘대로 하지 못하는) 물론 TotalCommander와 같은 관리툴에서 이용하는것도 가능합니다.


Raid설정을 해서 안정성을 높이고 스케쥴을 이용해 2차, 3차 백업이 가능하도록 하면 작은 사무실등에서의 파일관리로는 꽤 괜찮을것 같습니다.

우분투서버에 Pydio(Ajaxplorer)설치하기


몇년째 파일서버로 Pydio를 이용하고 있다. Ajaxplorer시절부터 사용했으니 꽤 오래 써오고 있다. 이번에 서버를 재 세팅하면서 Debian에서 Ubuntu로 바꿔서 이용해보고자 하여 설치하는 과정을 기록해 놓으려 한다.



1. 우분투 서버 설치


서버설치야 이미지를 다운받아서 키보드 설정, 지역설정등을 해 가며 하면 된다. 패키지 선택부분에서 나는 SSH, LAMP, SAMBA세가지를 선택해서 설치를 했다. 설치가 끝나고 나면 IP를 고정해줘야 한다. 외부에서도 이용해야 하기때문이다. 외부에서의 이용은 공유기의 DDNS를 이용해서 하고 있다.

/etc/network/interfaces 파일을 수정한다.

$ sudo nano /etc/network/interfaces
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

을 아래와 같이 바꾼다.

auto lo eth0
iface lo inet loopback
iface eth0 inet static
    address 192.168.0.177
    netmask 255.255.255.0
    gateway 192.168.0.1

dns-nameservers 168.126.63.1 168.126.63.2 8.8.8.8

네트워크를 재시작 하거나 재부팅.

$ sudo /etc/init.d/networking restart

서버에서는 여기까지 작업을 해 주면 SSH로 putty등을 이용해서 외부(데스크탑PC)에서 나머지 작업이 가능하다. 변경된 ip확인은

$ ifconfig

설치시 LAMP를 선택했기 때문에 브라우저를 이용 ip주소로 접속을 하면 apache2세팅에 관한 화면을 볼수있다.


업데이트를 해주고 기본 서버세팅은 마무리.

$ sudo apt-get update
$ sudo apt-get upgrade

2. Pydio 설치


apt-get으로 설치를 하기 위해 세팅을 해 준다. 

$ sudo nano /etc/apt/sources.list

마지막 부분에 아래 내용을 추가해 준다. 

deb http://dl.ajaxplorer.info/repos/apt stable main
    deb-src http://dl.ajaxplorer.info/repos/apt stable main

퍼블릭키를 설치해주고 

$ wget -O - http://dl.ajaxplorer.info/repos/charles@ajaxplorer.info.gpg.key | sudo apt-key add -

설치를 진행한다.

$ sudo apt-get update
$ sudo apt-get install pydio

config파일을 복사해주고 나머지 세팅을 한다.

$ sudo cp /usr/share/doc/pydio/apache2.sample.conf /etc/apache2/sites-available/pydio.conf
$ sudo a2ensite pydio
$ sudo a2enmod rewrite
$ php5enmod mcrypt

데이타 path를 기록가능하게 바꿔준다.

$ sudo chown -R www-data:www-data /usr/share/pydio/data

3. Pydio 설정



브라우저에서 http://ip주소/pydio 로 접속한다. Admin 계정을 설정해준후 Global options에서 인코딩을 한글로 설정해준다. 현재 서버의 인코딩값은

$ echo $LANG

으로 알수있다. 내 경우엔 ko_KR.UTF-8

다음으로 저장장치 설정을 해야 하는데 NoDB를 이용할수도 있으나 MySQL등으로 설정해주는게 추후 업그레이드등에서 용이하다고 한다. DB를 이용한다고 해서 내가 올리는 파일을 저장하는게 아니고 사용자 정보나 파라메터등의 저장에 이용을 한다.



$ service mysql status
$ sudo mysql -u root -p

mysql>create database pydio;
mysql>create user pydio@localhost identified by 'mysqlpassword';
mysql>grant all privileges on pydio.* to pydio@localhost identified by 'mysqlpassword' with grant option;
mysql>exit

mysql 세팅을 해주고 Try connecting to the database 버튼을 눌러 정상접속이 되는지를 확인한다.

사용자 세팅을 한 후 Install Pydio Now 버튼을 누른다.

세팅이 끝나고 나면 .htaccess 파일에 대한 설명이 나온다.



이후 http://IP/pydio로 접속을 하면 초기 화면이 반겨준다.



3.기존 세팅 추가


fdisk -l로 기존 하드디스크를 찾아본 후 마운트 할 디렉토리를 만든 후 fstab에 기존 하드디스크를 지정한다.

fdisk -l
$ sudo nano /etc/fstab
/dev/sda    /var/www/files/data1    ....

마운트하는 방법은 검색을 통해서 알아보면 된다.

pydio에 접속한 후 유저 및 저장소 세팅을 해 준다.

4.접속주소 초기설정


여기까지 따라오면 http://IP주소 로 접속을 할 경우 apache2 소개화면이 뜨고 http://IP주소/pydio 로 접속을 해야 pydio로 접속이 된다. 이미 사용자들이 안드로이드 프로그램등에서 처음 주소로 세팅이 되어 있으므로 이걸 조정해주어야 한다. 즉 루트디렉토리를 변경한다.

$ sudo nano /etc/apache2/apache2.conf

아래쪽으로 내려서

<Directory /var/www/>

이 부분을

<Directory /usr/share/pydio/>

로 바꿔주고

$ sudo nano /etc/apache2/sites-available/000-default.conf

에서

DocumentRoot /var/www/html

부분을

DocumentRoot /usr/share/pydio

로 바꿔준 후

$ sudo service apache2 restart

아파치 서버를 재시작 해 주면 이제 http://IP주소 로 Pydio가 바로 나온다.

어우... 분명 기억상으로 파일 업로드 크기 같은거 더 세팅해야 할게 있는거 같은데... 추후 기억나고 필요할때 다시 기록하기로...

아무리 개인이 쓰는 파일서버라고해도 무너지면 데미지가 크다.

+ Recent posts