thttpdをつかってみる
非力なCPU&少ないメモリーのPCをつかっているので、
apache より、小さくて軽い、thttpdを試しに動かしてみました。
その時のメモです。
thttpdとは、
thttpd は、tiny/turbo/throttling HTTP server ということで、
小さくて、軽くて、セキュアな(?)Webサーバということです。
chrootして動くので、apache から乗り換えるときは、ちょっととまどうかも。
詳しくは、thttpd のページ
(英語)をご覧ください。
インストール
Debian なので、apt-get 一発です。
$ apt-get install thttpd
設定
thttpの設定ファイルは/etc/thttpdの下に配置されます。
- thttpd.conf
- thttpのメインの設定ファイル。あまりいじることは無いと思います。
- throttle.conf
- よくわかってません。(^_^;)
やってみたこと
- デフォルトのトップページはどこ?
- http://localhost/ でアクセスできるページは、/var/www にあります。
インストール時はなにも、入っていないので、とりあえず、index.html を作りましょう。
また、thttpd.confファイル中の
dir=/var/www
で指定することができます。
- ~ユーザ名、でアクセスするには。
- http://localhost/~hoge でアクセスするには、「/var/www/users/ユーザ名」ディレクトリを
作る必要が有ります。
/var/www/users/ユーザ名 の下にユーザのページをつくります。
ここで、注意が必要なのは、apache の時のディレクトリ、~/public_html にリンクを
張るだけでは、ダメです。
thttpdはchrootして動いているので、/var/www の下以外はアクセスできません。
また、シンボリックリンクもたどらないようになっています。
/var/www/users/ユーザ名 ディレクトリの下に実体を置く必要が有ります。
ユーザから、apacheの時と同じように見せるなら、(必要が有るかどうかは別として)
/var/www/users/ユーザ名 を ~/public_html にリンクを張りましょう。
- ~ユーザ名、でアクセスするディレクトリを、~/public_html にしたい。
- thttpdのコンパイル時に指定する必要が有るようです。
Debianのパッケージでは、~ユーザ名は、/var/www/users/ユーザ名ディレクトリを
指す(thttpdのデフォルト)ようにコンパイルされているので、
コンパイルしなおす必要があるようです。
コンパイルは、まだやっていませが、config.h ファイルの、TILDE_MAP_1 を無効にして、
TILDE_MAP_2 を有効にするとできるようです。
- ~/public_htmlに実体を置き、thttpdのコンパイルせずに、~ユーザ名でアクセスしたい。
- /varの容量が少ないとか、既にapacheで運用しているものをthttpd変えたい時などだと思います。
chrootをしないようにする必要があるので、セキュリティ的に甘くなるらしいですので、
注意してください。
thttpd.conf の、
chroot
となっている行を、
nochroot
とします。
そして、ファイルの最後に、
nosymlink
を追加します。
これで、chrootなしで、シンボリックリンクをたどるようになりました。
最後に ~/public_html を /var/www/users/ユーザ名 にリンクを張るとOKです。
- 認証が必要なページを作る
- apache では、.htaccess ファイルをつかいますが、
thttpdでは、.htpasswd ファイルをつかいます。
まず、.htpasswd ファイルをつくるには、thtpasswdコマンドを使います。
thtpasswdコマンドは、thttpdutilパッケージに入っているので、aptを使って
インストールしましょう。
最初は、
$ thtpasswd -c himitu hoge1
Adding user hoge1
New password:
Re-type new password:
とすると、ユーザhoge1が登録された、himit ファイルができます。
これに、hoge2を追加する場合は、-cオプションを外して、
$ thtpasswd himitu hoge2
とします。
こうして出来上がった、himituファイルを、認証が必要なページのディレクトリに、
.htpasswdというファイル名でコピーすると、そのディレクトリ以下のページをアクセス
する時に、ユーザ名とパスワードの入力を求められるようになります。
戻る