Linux Tips

Webサーバ「lighttpd」でWebDAVを使うには

北浦訓行
2006/2/16

 lighttpd話題のWebサーバ「lighttpd」を使うには参照)は、WebDAVも使用できる。ここでは、Fedora Core 4でlighttpdによるWebDAVサーバの構築法を説明する。ただし、Fedora Extrasのlighttpd-1.3.16-2.fc4にはWebDAVのモジュールが含まれていないため、lighttpdのWebサイト(http://www.lighttpd.net/)からダウンロードした最新版のSRPMファイル(lighttpd-1.4.10-1.src.rpm)を使ってRPMファイルを作成する。SRPMからRPMファイルを再構築する理由は、RPMファイルのlighttpdはSSLがオフの状態でコンパイルされているためだ。

 lighttpd-1.4.10-1.src.rpmをダウンロードしたら、以下のコマンドでSSLを有効にしてRPMファイルを作成する。

# rpmbuild --rebuild --with ssl lighttpd-1.4.10-1.src.rpm

 /usr/src/redhat/RPMS/i386にlighttpd-1.4.10-1.i386.rpmが作成されたら、それをインストールする。yumコマンドでFedora Extrasのlighttpdをインストールしている場合は、removeしておく必要がある。念のため、/etc/lighttpd/lighttpd.confをバックアップしておく。

# cp /etc/lighttpd/lighttpd.conf /etc/lighttpd.conf.org
# yum remove lighttpd lighttpd-fastcgi
(省略)
Is this ok [y/N]: y ←「y」を入力して[Enter]キー
# rpm -Uhv lighttpd-1.4.10-1.i386.rpm

 次に、SSL関連(Webサーバ「lighttpd」でSSLを使うには参照)とDigest認証(lighttpdでユーザー認証を行うには(Digest認証編)参照)の設定を行う。

 サーバ証明書は、/etc/lighttpd/sslディレクトリを作成して、そこに置くことにする。

# mkdir -p /etc/lighttpd/ssl
# cd /etc/lighttpd/ssl
# openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
(省略)
-----
Country Name (2 letter code) [GB]:JP ←2文字国名(JP)
State or Province Name (full name) [Berkshire]:Tokyo ←都道府県
Locality Name (eg, city) [Newbury]:Chiyoda ←区市町村
Organization Name (eg, company) [My Company Ltd]:Example Corp. ←組織名
Organizational Unit Name (eg, section) []:Example Dept. ←部署名
Common Name (eg, your name or your server's hostname) []:Noriyuki
Kitaura ←担当者名またはサーバ名など
Email Address []:kitaura@example.co.jp ←メールアドレス

 続いて、htdigestコマンドで認証用のユーザー(ここでは「secret」)を作成し、パスワードを設定する(レルムは「WebDAV」)。

# cd /etc/lighttpd
# htdigest -c lighttpd.user.htdigest "WebDAV" secret
Adding password for secret in realm WebDAV.
New password: ←パスワードを入力
Re-type new password: ←パスワードを再入力

 それから、WebDAV用のディレクトリを作成する。ここでは、yumコマンドでlighttpdをインストールしたときの/srv/www/lighttpdディレクトリの下に、davというサブディレクトリを作成することにする。また、書き込み可にするために、書き込み属性を設定しておく。

# mkdir -p /srv/www/lighttpd/dav
# chmod 777 /srv/www/lighttpd/dav

 最後にlighttpdの設定ファイル(/etc/lighttpd/lighttpd.conf)を編集する。/etc/lighttpd/lighttpd.confが存在しない場合は、バックアップからコピーするか、/usr/share/doc/lighttpd-1.4.10/lighttpd.confをコピーする。

server.modules              = (
(省略)
                                "mod_fastcgi",
(省略)
                                "mod_cgi",
(省略)
                                "mod_webdav",
                                "mod_accesslog" )


## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root        = "/srv/www/lighttpd/"


## where to send error-messages to
server.errorlog             = "/var/log/lighttpd/error_log"


#### SSL engine ←SSLの設定
ssl.engine                  = "enable"
ssl.pemfile                 = "/etc/lighttpd/ssl/server.pem"


#### auth module ←Digest認証の設定
## read authentication.txt for more info
auth.backend               = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/lighttpd.user.
htdigest"
auth.require = ( "/dav/" =>
                (
                  "method"  => "digest",
                  "realm"   => "WebDAV",
                  "require" => "valid-user"
                )
)

$HTTP["url"] =~ "^/dav($|/)" { ←WebDAVの設定
  webdav.activate = "enable"
# webdav.is-readonly = "enable"
}

 以上で設定は完了だ。lighttpdを起動して、動作を確認する。lighttpdの起動時にPEMパスフレーズの入力を求められたら、パスフレーズを入力して[Enter]キーを押す。

# service lighttpd start
lighttpd を起動中: Enter PEM pass phrase: ←パスフレーズを入力

 WebDAVサーバにアクセスする方法は、WebDAVサーバにアクセスするにはを参照。ただし、Fedora Core 4のGNOMEではアクセス方法が変わっているため、Fedora Core 4でWebDAVサーバにアクセスするにはを参照。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間