Apache HTTP Serverに関しては、書籍や解説記事が数多くありますので、今更ここに書くようなこともほとんど無いんですけどね。

#ls2
#br

(2011/08/06)
 Apache HTTP Server 2.2.19 for Windows 32-bit を、自宅Server用にsetupしました。備忘のため、その際の留意点をまとめてみます。

* WebDAV [#n4418f07]

*** 1ヶで数GBのファイルを含むフォルダは、ApacheではWebDAV公開できない。''【未解決】'' [#iad23e8a]
 私の場合、VMwareのイメージファイルで18GBってのがあってNGでした。IIS 5.1のWebDAVでは問題ないのですが…。
 巨大なファイルがあるフォルダを避けるように、WebDAV公開するパスを考えましょう。

*** CIFSもWebDAV公開できる [#beaca5c7]
 Windowsネットワーク共有で、例えば「\\192.168.176.3\e」だと
 Alias /e "//192.168.176.3/e"
 <Directory "//192.168.176.3/e">
と設定できます。([[参考:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20258&forum=6]]) <Directory>の代わりに
 <Location /e>
も可。
 公開ルートパスとして、Windows共有配下のフォルダも指定できます。
 Alias /f01 "//192.168.176.3/e/folder01"
 <Directory "//192.168.176.3/e/folder01">

 ただし、Apacheプロセス(httpd.exe)実行アカウントが、そのCIFSに対して権限を持っている必要があります。通常、httpd.exeは、Windowsサービスとして、"Local System Account"で実行されていると思いますが、それを変更する必要があるってことです。
 Windows用Apacheでは、UserやPassディレクティブは使えないので、httpd.confでのアカウント指定はできないようですね。

*** ForceType text/plain を設定しちゃダメ [#pb4a6a10]
 WebDAVのGETメソッドで*.phpや*.plが実行されてしまい、ダウンロード・アップロードできなくなるのを防ぐために、
 ForceType text/plain
を設定せよというWeb記事も散見します。が、これを設定すると、100MB超のPDFファイルが転送で破損したりしました。
 面倒でも、DAV有効ブロックに対して、mime type毎に丁寧に設定するのがよいでしょう・
 AddType text/plain .php
 AddType text/plain .pl
 AddType text/plain .php .pl ......
 いやいや、binary扱いすればいいんじゃないですかね?
 Forcetype application/octet-stream

*** DavLockDBを設定しよう [#vf2994d7]
 DavLockDBは、[[同じファイルを二人が操作できないようにするため:http://www.aconus.com/~oyaji/www/apache_win_dav.htm]]のものらしいので、1行設定しておきましょう。
 DavLockDB "logs/DavLock"

*** FrontPage Server Extension対策をしよう [#n3726c47]
 WindowsのWebFolderから使うと、
 File does not exist: /home/httpd/html/_vti_inf.html
等の[error]ログが出てウザイ。
 Header add MS-Author-Via "DAV"
と設定し、このエラーを回避しましょう。([[参考:http://www.geocities.co.jp/Hollywood-Miyuki/8444/webdav/webdav.html]])

*** 全Methodに認証つけると、WindowsのWebFolderから接続できなくなる!? [#g4d945bc]
 全てのHTTP Methodに認証をかけると、WindowsのWebFolderから使えなくなることがあるようです。他のWebDAVアプリでは問題ないのですけど…。
 <LimitExcept OPTIONS>
   Require valid-user
 </LimitExcept>
として、OPTIONSから認証を外すと不具合が解消しました。詳細は不明。

*** Digest認証対応が不十分なClientも居るかも!? [#e3253625]
 iPadアプリ[[「i文庫HD」のWebDAVフォルダ:http://nagisaworks.com/ibunkohd/manual/folder_webdav.html]]から利用すると、時々、
 Digest: client used wrong authentication scheme `Basic':
なんて[error]ログが出ます。ApacheのDigest認証と折り合いが悪いのかしら? でも、iPadの使用には全く問題なく、ログを見なければ気づきません。

*** mod_encodingはもう要らない [#a0e5c3f4]
 NTFS・CIFS上の日本語ファイル名・フォルダ名も、今や文字化けしません。Charset等の設定も、defaultのままでOKです。
 [[2.2.3ではダメだった:http://blog.goo.ne.jp/rezoochi/e/c375491a232f0314b5a6b7c5411f84d1]]とのことなので、それ以降のどこかで国際化対応が強化されたか…。

* SSL [#d27f3e02]

*** (今や常識ですが)Port:80用のVirtualHost設定は不要 [#r9e936cf]
 <VirtualHost _default_:443>
を追加したからといって、
 <VirtualHost *:80>
をわざわざ設定しなくても、Port:80は活きたままです。

*** ユーザーのOSにルート証明がInstallされていないサーバー証明書の場合 [#kdbc7834]
 「そのサーバー証明書を信頼しろ」と指示が必要になるでしょう。特にSSL参照するアプリ等に影響が。
 私も、Redmineから参照するsubversion repositoryのURLをhttpsに変える際に、redmine/lib/redmine/scm/adapters/subversion_adapter.rb:229の
 str << " --no-auth-cache --non-interactive"
を
 str << " --no-auth-cache --non-interactive --trust-server-cert"
に変えました。

* Subversion [#hdb06970]

*** URLパス末尾には'/'をつけろ [#f7544156]
 <Location /svn>
ではなく、
 <Location /svn/>
でないと、リポジトリ一覧が表示されませんでした。なので、
 <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/svn$
    RewriteRule ^(/svn)$ /svn/ [R=301,L]
 </IfModule>
として、末尾の'/'を強制しています。

*** httpsを使え [#cd822292]
 http(port:80)でのSubversion利用だと、職場等のWeb-Proxyによっては"Bad Gateway"を返すことがあります。https(port:443)だと問題なさそうです。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS