*Apache 2 test! [#a6c114fd]

古い [[Apache 1:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/apache.html]]
のページをとりあえず更新したものです。

**News [#w0646c01]

apache-2.0.52 が出ました。

**はじめに [#g4f40760]

UNIX 版の Apache はたいていの Linux などのディストリビューションに入っているはずですが,ここではソースコードからコンパイルしてインストールする方法を解説します。

Apache プロジェクトのホームページは [[ここ:http://www.apache.org/]]
ですが,なるべく近いところから get しましょう。
[[RingServer:http://www.ring.gr.jp/]] の
[[/pub/net/apache/dist/:http://www.ring.gr.jp/pub/net/apache/dist/]]
をお薦めします。
Apache にはバージョン 1.x のものと 2.x のものがありますが,ここでは 2.x
のもの(httpd-2.X.YY.tar.gz といったファイル名)を使います。

**インストール [#jefc80dd]

あらかじめユーザ www,グループ www を作っておきます(どんな名前でもかまいません)。

まずソースを展開してコンパイルします。
後で PHP を使うために Dynamic Shared Object の設定 --enable-so をしておきます。

 cd httpd-2.0.52
 CFLAGS="-O2" ./configure --enable-so --enable-auth-digest
 make
 make install

WebDAV するならさらに --enable-dav=yes を付けます。

デフォルトのインストール場所は /usr/local/apache2
以下になります(Apache 1.x では /usr/local/apache でした)。
場所を変えるには configure に --prefix=/opt/local/apache2
のようなオプションを付けます。

**httpd.conf の設定 [#b6b638e7]

次に,/usr/local/apache2/conf にある httpd.conf を編集します。

 User nobody
 Group "#-1"

となっているところは,前にも書いたように,できれば www
といったユーザ/グループを作って,

 User www
 Group www

とするほうがよいでしょう。

ServerAdmin は適当なメールアドレスにします。
例えば

 ServerAdmin webmaster@example.ac.jp

として,webmaster を管理人の別名として登録するといいでしょう。

ServerName はホスト名です。たとえば

 ServerName www.example.ac.jp:80

とします。
実験的に自分のマシンで動かすなら 127.0.0.1 でもかまいません。

 <Directory />
   Options FollowSymLinks
   AllowOverride None
 </Directory>

は,安全側に立った設定です。自由度をもっと上げるには

 <Directory />
   Options All
   AllowOverride All
 </Directory>

とします。
All に加えて MultiViews オプションも付けると content negotiation
を自動で行いますが,パフォーマンスはかなり落ちます。
今は後述の .var ファイルを使うほうがいいでしょう。
AllowOverride を All にするのは,後で .htaccess で自由に設定を変えるためです。

次の

 <Directory "/usr/local/apache2/htdocs">

の中にも同様な行がありますが,これもさきほどと同様です。

次の

 DirectoryIndex index.html index.html.var

となっているところは,たとえば

 DirectoryIndex index.html index.htm index.php index.cgi index.pl index.html.var

にすると,index.html 以外のファイル名でも省略できるので,便利です。

MIME type の不明なバイナリファイルがブラウザに表示されてしまうことを防ぐために

 DefaultType text/plain



 DefaultType application/octet-stream

にしておくといいかもしれません。

次の

 CustomLog logs/access_log common

はコメントアウトし,

 CustomLog access_log combined

を生かしておけば,一つ前のページの URL と,ブラウザの銘柄がログに入ります。
つまり,どのページからリンクをたどって来たか,どんなブラウザを使っているかがわかるわけです。

IndexIgnore の行も諸刃の刃で,これのおかげで README.何々
というファイルが見つからなくて困ったことがありました。

次の

 LanguagePriority en ca ...

は,もちろん

 LanguagePriority ja en ca ...

にしておきます。

次の行はコメントアウトしておかないと文字化けが起こります。

 AddDefaultCharset ISO-8859-1

CGIを使うなら,

 #AddHandler cgi-script .cgi

は,コメントを外して,ついでに Perl のために次のようにしておくと便利です。

 AddHandler cgi-script .cgi .pl

PHP を使うなら,PHP インストール時に httpd.conf
が書き換えられて次のいずれかの行が追加されるはずです。

 LoadModule php4_module modules/libphp4.so
 LoadModule php5_module modules/libphp5.so

さらに次の2行がなければ追加しておきます。

 AddType application/x-httpd-php .php
 AddType application/x-httpd-php-source .phps

最近の Apache では次のように書いてあるところをコメントアウトしないと日本語が文字化けします。

 AddDefaultCharset ISO-8859-1

**実行 [#e75aa933]

起動,終了,再起動はそれぞれ

 /usr/local/apache2/bin/apachectl start
 /usr/local/apache2/bin/apachectl stop
 /usr/local/apache2/bin/apachectl restart

です。

**WebDAV [#cc0e01ff]

WebDAV は HTTP 上に構築された次世代のファイル共有プロトコルです。
.Mac の iDisk も AFS から WebDAV ベースに変更されました。

Apache 2 では ./configure に --enable-dav=yes 
を付けていれば,httpd.conf に次を追加するだけで WebDAV が使えます。

 <Location /dav>
   DAV on
 </Location>
 DAVLockDB /usr/local/apache2/var/DAVLock

/usr/local/apache2/htdocs/dav と /usr/local/apache2/var/ はユーザ www が書き込めるようにしておきます。
後者のディレクトリにはロックファイル DAVLock.dir,DAVLock.pag が入ります。

これで,Mac OS X なら Finder で「移動」→「サーバへ接続」で http://サーバ名/dav とすればつながります。

サーバ上の場所は /usr/local/apache2/htdocs/dav になります。
これが嫌なら次のようにして別の場所を指定できます。

 Alias /dav /path/to/somewhere

これだけでは誰でもアップロード/ダウンロードできてしまいますので,例えば次のようにダイジェスト認証を設定します。

 <Location /dav>
   DAV on
   AuthType Digest
   AuthName "DAV"
   AuthDigestFile /path/to/somefile
   Require valid-user
 </Location>

 /usr/local/apache2/bin/htdigest -c /path/to/somefile DAV someuser

と打ち込むと someuser さんのパスワードを聞いてきますので,2回打ち込みます。

これで Mac OS X なら日本語ファイル名(utf-8)を含め何の問題もないようです。
ドラッグ&ドロップやダブルクリックができます。
/Volumes/dav にマウントされますので,Emacs などでもローカルファイルと同じように編集できます。
Windows XP(マイネットワーク→ネットワークプレースを追加する)ではいろいろトラブルが生じるとのことです。

UNIX互換OSのコマンドラインで使えるクライアント
[[cadaver:http://www.webdav.org/cadaver/]]
があります。
ちょうど ftp コマンドのように使えて便利です。

***参考サイト [#i4b985ef]

-[[WebDAV Resources:http://www.webdav.org/]]
-[[WebDAV Resources JP:http://webdav.todo.gr.jp/]]
(ここで配布されている mod_encoding を使うと Windows から日本語ファイル名が使えるようになります)