apache2 서버에서 webdav 적용시키기

auspic7·2021년 6월 8일
0

홈 서버

목록 보기
1/2

파일 전송 프로토콜에는 여러가지가 있지만, 안정성이나 속도, 범용성 부분에서 잘 자리잡은 것은 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

profile
잡식 개발자

0개의 댓글