파일 전송 프로토콜에는 여러가지가 있지만, 안정성이나 속도, 범용성 부분에서 잘 자리잡은 것은 webdav라고 생각한다. 설정해두면 어떤 머신에서도 편하게 접근할 수 있는 점이 매력적이었다. 심지어는 http 기반으로 하고 있기 때문에 웹서버 위에서 돌아가고, 브라우저와도 호환된다는 점도 맘에 들었다.
이전 포스트를 참조하여 설치하자.
먼저 DAV를 사용하기 위해 필요한 모듈을 활성화시키자.
sudo a2enmod dav
sudo a2enmod dav_fs
그 담에는 username과 pw 정보를 담고 있는 인증 파일을 만들어야 한다. 이건 로그인해서 액세스할 때 사용한다.
htpasswd -c Filename username
근데 이제 패스워드 파일을 보통 /etc/apache2/your-filename.passwd
에 많이 위치시키는 편이다. 이름은 아무거나 정해주면 된다.
다른 포스트에서는 다 희한한 설정 파일을 제시하는데, 나는 도대체 왜 그렇게 하는지도 잘 모르겠고 설정 파일에 필요한 내용만 넣고 싶어서 조금 다른 식으로 설정 파일을 작성해 봤다. available-sites
에서 세로운 엔트리를 하나 만들고 virtual host를 다음과 같이 작성하자.
<VirtualHost *:your-port-number>
ServerAdmin webmaster@localhost
DocumentRoot /path/to/your/directory
<Directory /path/to/your/directory>
Options Indexes
Dav On
AuthType Basic
AuthName DAV
AuthUserFile "your-filename.passwd"
Require valid-user
</Directory>
<Directory /path/to/your/directory/Public>
AuthType None
Require all granted
Options Indexes
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
여기서 작성된 설정 파일에서는, 도큐멘트 루트 디렉토리 이하의 파일과 폴더에는 로그인 된 상태에서만 접근을 허용하지만 /Public에만은 접근을 모두에게 허용한다. 만약에 이런 동작을 원하지 않는다면 아래 있는 지시문 블록을 지워주면 된다.
여기까지 했으면 절대 꼭 잊지 말고 sudo a2ensite
를 통해 사이트를 활성화 시켜주자.
sudo service apache2 restart
로 데몬을 재시작시켜주면 설정 끝이다.
https://webdav.io/webdav/webdav-server/webdav-apache/#Test_WebDAV_Apache_Server_Setup
https://httpd.apache.org/docs/2.4/en/mod/mod_authn_file.html#authuserfile