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
が必要でした。
コメント
[…] Nginxに拡張モジュールを導入してWebDAVするとしていたが、実際は使い物にならなかった。アクセスできないクライアントがあった。 […]