OMV4에서는 Webdav플러그인을 지원했기 때문에 쉽게 설정할 수 있었지만, OMV5로 업데이트되면서 플러그인이 지원하지 않게 되었습니다.
그래서 플러그인에서 사용하던 wabdav소스인 sabre/dav
를 직접 다운로드하여 설정해주어야 합니다.
sabre/dav 다운로드하기
sabre/dav
를 다운로드하기 위해서는 php-composer
가 필요합니다. 그래서 먼저 php-composer
를 설치해줍니다.
SSH
접속을 하여 아래 명령줄을 입력해 줍니다.
wget https://getcomposer.org/installer
mv installer composer-setup.php
php composer-setup.php
rm composer-setup.php
sudo cp composer.phar /usr/bin/composer
그다음 composer
를 입력해보고 제대로 설치되었는지 확인해 줍니다. 제대로 설치되었다면 sabre/dav
를 다운로드하여 줍니다.
sudo composer require sabre/dav ~3.2.0
sudo composer update sabre/dav
파일 다운로드와 업데이트를 마쳤다면 다운로드한 파일을 웹 디렉터리로 옮겨줍니다.
sudo mkdir /var/www/openmediavault/webdav
sudo mv vendor/ /var/www/openmediavault/webdav
sabre/dav 설정하기
webdav
에서 사용할 파일들이 저장되는 디스크가 어디에 탑재되어 있는지 찾아야 합니다.
[Develop/Raspberry Pi] - [Raspberry Pi_OMV5] 2. OMV5 HDD 설정하기
위 글에서 레이블을 주어서 생성하였다면 /srv/dev-disk-by-label-[설정한 레이블 명]/
에 디스크가 탑재되어 있습니다.
레이블 명을 설정하지 않았다면 아래 명령어로 확인해 주어야 합니다.
ls /srv/
저 명령어로 나온 결과 중 dav-disk-by
로 시작하는 폴더에 디스크가 탑재되어 있습니다.
이 경로를 기억한 다음에 sabre/dav
를 사용하기 위한 파일과 폴더를 만들어 줍니다.
cd /var/www/openmediavault/webdav/
sudo mkdir data/
sudo ln -s [위에서 찾은 디스크 경로(/srv/dev-disk-by~)]/[공유 폴더 명] public
sudo chmod a+rwx data
위 명령줄의 3번째 줄의 예시는 아래와 같습니다.
sudo ln -s /srv/dev-disk-by-label-HDD/Data public
이제 server.php
파일을 만들어 주어 sabre/dav
의 설정을 마쳐줍니다.
sudo nano server.php
php
파일은 아래와 같이 작성합니다(복사, 붙여 넣기가 안될 경우 하단에 올려놓은 파일을 이용해 주세요).
<?php
use
Sabre\DAV;
// The autoloader
require 'vendor/autoload.php';
// Now we're creating a whole bunch of objects
$rootDirectory = new DAV\FS\Directory('public');
// The server object is responsible for making sense out of the WebDAV protocol
$server = new DAV\Server($rootDirectory);
// If your server is not on your webroot, make sure the following line has the
// correct information
$server->setBaseUri('/webdav/');
// The lock manager is reponsible for making sure users don't overwrite
// each others changes.
$lockBackend = new DAV\Locks\Backend\File('data/locks');
$lockPlugin = new DAV\Locks\Plugin($lockBackend);
$server->addPlugin($lockPlugin);
// This ensures that we get a pretty index in the browser, but it is
// optional.
$server->addPlugin(new DAV\Browser\Plugin());
// All we need to do now, is to fire up the server
$server->exec();
[Ctrl
] + [x
]를 누른 뒤 [y
], [Enter
] 키를 차례로 눌러 저장하고 나와줍니다.
Nginx 설정하기
sabre/dav
설정이 마쳤다면 웹에서 sabre/dav
를 접근할 수 있게 Nginx
를 설정해 주어야 합니다.
sudo nano /etc/nginx/sites-enabled/openmediavault-webgui
listen [::]:80 ~
줄 위에 아래 내용을 추가해 줍니다.
location /webdav {
proxy_pass http://[라즈베리파이의 IP주소]:30080;
}
[Ctrl
] + [x
]를 누른 뒤 [y
], [Enter
] 키를 차례로 눌러 저장하고 나와줍니다.
하나의 서버 파일을 하나 더 생성해 줍니다.
sudo nano /etc/nginx/sites-enabled/webdav
아래와 같이 서버 설정을 작성해 줍니다(복사, 붙여 넣기가 안될 경우 하단에 올려놓은 파일을 이용해 주세요).
server {
listen 30080;
allow [라즈베리파이의 IP주소];
deny all;
root /var/www/openmediavault/webdav/;
index server.php;
location / {
rewrite ^/(.*)$ /server.php;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
[Ctrl
] + [x
]를 누른 뒤 [y
], [Enter
] 키를 차례로 눌러 저장하고 나와줍니다.
작성한 Nginx
설정 파일이 문제없는지 확인한 후 Nginx
를 재시작하여 적용해 줍니다.
sudo nginx -t
sudo systemctl restart nginx
공유폴더 권한 설정
webdav에서 사용할 공유폴더에 www-data의 접근권한이 있어야 읽기/쓰기가 가능합니다.
OMV 웹 설정 화면에 들어가서 [접근 권한 관리
] - [공유 폴더
]로 들어갑니다.
webdav
에서 사용하는 공유폴더를 선택한 다음 [접근 제어 목록
] 버튼을 눌러줍니다.
[사용자/그룹 권한
]에서 www-data
를 선택한 뒤 적용 후 저장해 줍니다.
파일 다운로드
이제 webdav
가 정상적으로 접속되는지 확인해 줍니다. 접속은 http://[라즈베리파이의 IP주소]/webdav
로 접속하면 됩니다.
파일의 업로드, 다운로드가 정상적으로 된다면 webdav
설정이 끝난 것입니다.
접속 암호 설정은 아래 글을 이용해서 설정하면 됩니다.
[Develop/Server] - [Server] SabreDAV 인증 구현하기
설치가 잘 진행되지 않는다면 댓글 달아주세요. 제가 알고 있는 한 최대한으로 도와드리도록 하겠습니다.
'Develop > Server' 카테고리의 다른 글
[Server] SabreDAV 인증 구현하기 (1) | 2020.07.09 |
---|---|
[Raspberry Pi_OMV5] 5. OMV5 SMB 공유 설정하기 (4) | 2020.03.16 |
[Raspberry Pi_OMV5] 4. OMV5 사용자 추가하기 (3) | 2020.03.06 |
[Raspberry Pi_OMV5] 3. OMV5 공유 폴더 만들기 (1) | 2020.03.05 |
[Raspberry Pi_OMV5] 2. OMV5 HDD설정하기 (3) | 2020.03.04 |