nginxでwebdavを導入

この記事は約7分で読めます。

vpsにwebdavを設定しようと思い、作業中。

まずは、let’s encryptからssl証明書を取得。webdavのために、新たに設定したサブドメインを使いました。

./letsencrypt-auto certonly -a standalone --server https://acme-v01.api.letsencrypt.org/directory \
--agree-dev-preview -d <<YOUR DOMAIN NAME>>
# <<YOUR DOMAIN NAME>> をあなたのドメイン名に置き換えて下さい

参考にした記事はこちら。

次に、nginxの設定ファイルを作って、サブドメインにアクセスできるようにしました。この記事を参考にしました。

設定ファイルはこれを少し変更しました。

server {
  listen 443 default ssl;
  ssl on;
  ssl_certificate /etc/nginx/ssl/webdav.endaaman.me.crt;
  ssl_certificate_key /etc/nginx/ssl/webdav.endaaman.me.key;

  server_name webdav.endaaman.me;

  location / {
    root /var/webdav;

    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;

    client_max_body_size 1000m;

    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;

    client_body_temp_path /tmp/webdav;
    create_full_put_path on;

    dav_access group:r all:r;
    dav_methods PUT DELETE MKCOL COPY MOVE;

    access_log /var/log/nginx/webdav.access.log;
    error_log /var/log/nginx/webdav.error.log;
  }
}

一応、webdavのディレクトリには、basic認証を設定。この記事を参考にしました。

これで、一応アクセスできるようになりました。

っと、macからサーバ接続できません。OPTIONSが使えない???

ということで、nginxをソースからインストールし直すことに。

ソースのダウンロードはこちらから。stableが、1.10になっていたのでダウンロード。

nginx -Vでパラメータを確認したところ、

curl -L -O http://hg.nginx.org/njs/archive/tip.tar.gz
git clone https://github.com/arut/nginx-dav-ext-module.git

が必要。./configureのパラメータは以下の通り。

--prefix=/etc/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib64/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_perl_module=dynamic \
--add-dynamic-module=njs-1c50334fbea6/nginx \
--with-threads \
--with-stream \
--with-stream_ssl_module \
--with-http_slice_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-http_v2_module \
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' \
--with-ld-opt=-Wl,-E \
--add-module=../nginx-dav-ext-module

あと、libxslt、libxslt-devel、pcre-devel、GeoIP、GeoIP−devel、gd-devel、をyumでインストール。この記事とほぼ同じ状況。

libxsltは、ここも参照。

systemctl restart nginx.service

で再起動したけど、エラーが出てしまい、起動できず。

fuser -k 80/tcp
fuser -k 443/tcp

が必要でした。

ウェブサイト
スポンサーリンク
スポンサーリンク
gokurakuをフォローする

コメント

  1. […] Nginxに拡張モジュールを導入してWebDAVするとしていたが、実際は使い物にならなかった。アクセスできないクライアントがあった。 […]