Ubuntu22.04LTSでnginxを使ってWebDav
タイトルの通りです。
本件に関する情報は、まだそれほど多くはありません。
自分への備忘録をかねて、アップしておきたいと思います。
リポジトリを追加してソースをDLします。
Ubuntu22.04で、nginxを使ってWebDavする方法です。
aptからインストールするnginxには、WebDAVの機能が一部含まれていません。
したがって、ソースファイルからコンパイルする必要があります。
まずは、作業用のディレクトリをつくりましょう。
今回は、webikerというホームディレクトリに作成することで説明を進めます。
# cd /home/webiker # mkdir nginx # chown -R webiker:webiker nginx # cd nginx
次に、ソースファイルを落とすためのリポジトリを追加します。
# vi /etc/apt/sources.list
まずは、deb-srcのコメントをすべて外します。
また、ファイルの末尾に以下を追記します。
deb [signed-by=/etc/apt/keyrings/nginx.gpg] http://nginx.org/packages/ubuntu/ jammy nginx deb-src [signed-by=/etc/apt/keyrings/nginx.gpg] http://nginx.org/packages/ubuntu/ jammy nginx
ポイントは、右から2番目のjammyですね。
これを指定することで、22.04用のファイルがダウンロードされてきます。
もし、Ubuntuのバージョンが違うときは、ここを参考に書き換えてください。
次に、nginxのサイトからパッケージの公開鍵をダウンロードします。
# wget https://nginx.org/keys/nginx_signing.key
ダウンロードした公開鍵を、apt-keyで追加します。
このとき、suユーザーで実施するとrootディレクトリにキーが作成されてしまいます。
したがって、この操作は一般ユーザーで実施します。
# exit(一般ユーザーに戻る) $ cd nginx $ gpg --no-default-keyring --keyring temp-keyring.gpg --import nginx_signing.key $ gpg --no-default-keyring --keyring temp-keyring.gpg --export --output nginx.gpg $ sudo su
最後に作成したKeyを、keyringsディレクトリにコピーします。
# cd nginx # cp -p nginx.gpg /etc/apt/keyrings/
これで、ソースファイルのダウンロード準備が整いました。
ソースファイル、その他必要なファイルをダウンロードします。
まず、パッケージを作るためのアプリをインストールします。
# apt update # apt install dpkg-dev
次に、ソースファイルをダウンロードします。
# cd /home/webiker/nginx # apt source nginx
ソースの次は依存ファイルです。
依存ファイルは、ソースルートディレクトリのdebian/controlのBuild-dependsに書かれています。
# apt install debhelper dpkg-dev quilt lsb-release libssl-dev libpcre2-dev zlib1g-dev build-essential
ビルドするためのライブラリをインストールします。
# apt install libxml2-dev libxslt-dev
最後に、WebDAV拡張モジュールをダウンロードします。
# git clone https://github.com/arut/nginx-dav-ext-module.git
これで、ダウンロード関係は終わりです。
nginxをコンパイルしてインストールします。
拡張モジュールを組み込むように、ruleファイルを変更します。
(*.*.*の部分は、ダウンロードしたバージョンに合わせて変更してください。)
# vi /home/webiker/nginx/nginx-*.*.*/debian/rules
ファイルの39~41行目付近、44~46行目付近に、config.statusの項目があります。
config.statusの項目は、nginxとnginx_debugの2か所あります。
それぞれの最後に、–add-module=/home/webiker/nginx/nginx-dav-ext-moduleを追記します。
config.status.nginx: config.env.nginx cd $(BUILDDIR_nginx) && \ CFLAGS="" ./configure --prefix=/etc/nginx ... --add-module=/home/webiker/nginx/nginx-dav-ext-module touch $@ config.status.nginx_debug: config.env.nginx_debug cd $(BUILDDIR_nginx_debug) && \ CFLAGS="" ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx ... --add-module=/home/webiker/nginx/nginx-dav-ext-module touch $@
ここまでくれば、あとはコンパイルしてパッケージをビルドするだけですね。
この作業は、ダウンロードしたソースファイルディレクトリで行います。
# cd /home/webiker/nginx/nginx-*.*.* # dpkg-buildpackage -uc -b
ビルドされたファイルは、ソースディレクトリのひとつ上に作成されます。
通常用とデバッグ用のものが作成されますので、通常用のファイルからインストールします。
# dpkg -i /home/webiker/nginx/nginx_*.*.*_*~jammy_amd64.deb
これでインストールが完了です。
念のために、バージョンを確認します。
# nginx -V
おめでとうございます。
これで、WebDavが使えるnginxがインストールできました。