Apacheクックブック

―Webサーバ管理者のためのレシピ集

[cover photo]
TOPICS
System/Network , Linux
発行年月日
PRINT LENGTH
276
ISBN
4-87311-182-X
原書
Apache Cookbook
FORMAT
Print
3,080円
この商品は品切れ再入荷未定です

本書はUSENETニュースグループの問題解決のリスト、ApacheのFAQ、Apacheメーリングリストなどに寄せられる膨大な問題から、特に必要とされているトピックを150選び、課題から解法と進むレシピ形式でまとめました。ソースコードの基本的なコンパイルから、性能の最適化、セキュリティやSSLの暗号化に関する複雑な問題まで、幅広いトピックをわかりやすく取り上げています。現場での様々な局面を想定して書かれた本書は、Webサーバ管理者必携の書です。

目次

まえがき

1章      インストール
        レシピ1.1  Red Hat Linuxパッケージからインストールする
        レシピ1.2  WindowsにApacheをインストールする
        レシピ1.3  Apacheのソースをダウンロードする
        レシピ1.4  Apacheをソースからビルドする
        レシピ1.5  ApacheToolboxでインストールする
        レシピ1.6  Apacheの起動、停止、再起動を実施する
        レシピ1.7  Apacheを削除する

2章      一般的なモジュールの追加
        レシピ2.1  一般的なサードパーティ製モジュールをインストールする
        レシピ2.2  mod_davをUnix系システムにインストールする
        レシピ2.3  mod_davをWindowsにインストールする
        レシピ2.4  mod_perlをUnix系システムにインストールする
        レシピ2.5  mod_phpをUnix系システムにインストールする
        レシピ2.6  mod_phpをWindowsにインストールする
        レシピ2.7  Pythonモジュールmod_snakeをインストールする
        レシピ2.8  mod_sslをインストールする

3章      ログの記録
        レシピ3.1  ログエントリに詳しい情報を追加する
        レシピ3.2  もっと詳しいエラー情報を得る
        レシピ3.3  POSTの内容をログに記録する
        レシピ3.4  プロキシ経由のクライアントのIPアドレスをログに記録する
        レシピ3.5  クライアントのMACアドレスをログに記録する
        レシピ3.6  クッキーをログに記録する
        レシピ3.7  ローカルページからの画像のリクエストをログに記録しない
        レシピ3.8  日または時間ごとにログファイルを循環する
        レシピ3.9  月の最初にログファイルを循環する
        レシピ3.10 IPアドレスでなくホスト名をログに記録する
        レシピ3.11 各バーチャルホストごとに別々のログファイルに記録する
        レシピ3.12 プロキシ経由のリクエストをログに記録する
        レシピ3.13 バーチャルホストのエラーを別々のログファイルに記録する
        レシピ3.14 サーバのIPアドレスをログに記録する
        レシピ3.15 参照しているページをログに記録する
        レシピ3.16 ブラウザのソフトウェア名をログに記録する
        レシピ3.17 リクエストヘッダの任意のフィールドをログに記録する
        レシピ3.18 レスポンスヘッダの任意のフィールドをログに記録する
        レシピ3.19 MySQLデータベースに動作ログを記録する
        レシピ3.20 syslogにログを記録する
        レシピ3.21 ユーザのディレクトリごとにログを記録する

4章      バーチャルホスト
        レシピ4.1  名前ベースのバーチャルホストをセットアップする
        レシピ4.2  名前ベースのバーチャルホストをデフォルトに設定する
        レシピ4.3  アドレスベースのバーチャルホストをセットアップする
        レシピ4.4  アドレスベースのバーチャルホストをデフォルトに設定する
        レシピ4.5  アドレスベースと名前ベースのバーチャルホストを混合する
        レシピ4.6  多数のバーチャルホストをmod_vhost_aliasでまとめて扱う
        レシピ4.7  多数のバーチャルホストをリライト規則でまとめて扱う
        レシピ4.8  複数の名前ベースのバーチャルホストでSSLを使用する
        レシピ4.9  バーチャルホストごとにログを記録する
        レシピ4.10 ログファイルをバーチャルホストごとに分割する
        レシピ4.11 ポートごとに別々のバーチャルホストを設定する
        レシピ4.12 複数のアドレス上で同じコンテンツを表示する

5章      エイリアスとリダイレクトとリライト
        レシピ5.1  シンボリックリンクを張らずにPHPソースをハイライト表示する
        レシピ5.2  URLをディレクトリにマップする
        レシピ5.3  既存のコンテンツに新しいURLでアクセスできるようにする
        レシピ5.4  ユーザに独自のURLを提供する
        レシピ5.5  複数のURLのエイリアスを1つのディレクティブで定義する
        レシピ5.6  複数のURLを同じCGIディレクトリにマップする
        レシピ5.7  各ユーザごとにCGIディレクトリを割り当てる
        レシピ5.8  別の場所にリダイレクトする
        レシピ5.9  複数のURLを同じ宛先にリダイレクトする
        レシピ5.10 URLで大文字と小文字を区別しない
        レシピ5.11 要求されたURLのテキストを書き換える
        レシピ5.12 パス情報をCGIの引数に書き換える
        レシピ5.13 他のサイトのページが画像を使用することを防ぐ
        レシピ5.14 クエリ文字列に基づいて書き換える
        レシピ5.15 サーバの全部または一部をSSLにリダイレクトする
        レシピ5.16 ディレクトリ名をホスト名に変換する
        レシピ5.17 すべてのリクエストを1つのホストにリダイレクトする
        レシピ5.18 文書の名前を引数に変換する

6章      セキュリティ
        レシピ6.1  Web認証のためにシステムのアカウント情報を使用する
        レシピ6.2  1回限りのパスワードを用意する
        レシピ6.3  パスワードを期限切れにする
        レシピ6.4  アップロードのサイズを制限する
        レシピ6.5  画像がサイトの外部から使われることを制限する
        レシピ6.6  脆弱な認証と強力な認証の両方を要求する
        レシピ6.7  .htpasswdファイルを管理する
        レシピ6.8  ダイジェスト認証用のパスワードファイルを作成する
        レシピ6.9  サブディレクトリのセキュリティを緩和する
        レシピ6.10 選択した文書の制限を解除する
        レシピ6.11 ファイルの所有者だけにアクセスを許可する
        レシピ6.12 ユーザの証明書をMySQLデータベースに保管する
        レシピ6.13 認証したユーザの名前を知る
        レシピ6.14 認証に使われたパスワードを知る
        レシピ6.15 パスワードの総当たり攻撃を防ぐ
        レシピ6.16 基本認証とダイジェスト認証を使い分ける
        レシピ6.17 URLに埋め込まれた証明書を使用する
        レシピ6.18 WebDAVを保護する
        レシピ6.19 Webユーザがファイルを書き込めない状態でWebDAVを使用可能にする
        レシピ6.20 特定のURLへのプロキシ経由のアクセスを制限する
        レシピ6.21 ラッパーでファイルを保護する
        レシピ6.22 一部を除くすべてのファイルを保護する
        レシピ6.23 サーバのファイルを不正なスクリプトから保護する
        レシピ6.24 ファイルに適切なパーミッションを設定する
        レシピ6.25 最小限のモジュールだけを実行する
        レシピ6.26 Webディレクトリ以外のファイルへのアクセスを制限する
        レシピ6.27 ユーザごとにメソッドを限定する
        レシピ6.28 範囲を指定したリクエストを制限する

7章      SSL
        レシピ7.1  SSLをインストールする
        レシピ7.2  SSL証明書を生成する
        レシピ7.3  信頼のおけるCA証明書を生成する
        レシピ7.4  サイトの一部をSSLを通して提供する
        レシピ7.5  クライアント証明書で認証する

8章      動的コンテンツ
        レシピ8.1  CGIディレクトリをセットアップする
        レシピ8.2  ScriptAlias以外のディレクトリでCGIスクリプトを使用可能にする
        レシピ8.3  Windowsのファイル拡張子を使用してCGIプログラムを起動する
        レシピ8.4  CGIスクリプトの拡張子を指定する
        レシピ8.5  CGIを正しくセットアップできたかどうかテストする
        レシピ8.6  フォームから入力された値を読む
        レシピ8.7  特定のタイプのコンテンツ用のCGIプログラムを呼び出す
        レシピ8.8  SSIをセットアップする
        レシピ8.9  最新の更新日時を表示する
        レシピ8.10 共通のヘッダを挿入する
        レシピ8.11 CGIプログラムの出力を挿入する
        レシピ8.12 suexecで別のユーザとしてCGIスクリプトを実行する
        レシピ8.13 CPANのmod_perlハンドラをインストールする
        レシピ8.14 mod_perlハンドラを書く
        レシピ8.15 PHPスクリプトを使用可能にする
        レシピ8.16 PHPのインストールを確認する

9章      エラー処理
        レシピ9.1  Hostフィールドがないリクエストを処理する
        レシピ9.2  CGIスクリプトでレスポンスステータスを変更する
        レシピ9.3  エラーメッセージをカスタマイズする
        レシピ9.4  複数の言語でエラー文書を表示する
        レシピ9.5  無効なURLを他のページにリダイレクトする
        レシピ9.6  Internet Explorerに独自のエラーページを表示する
        レシピ9.7  エラー状態を通知する

10章     プロキシ
        レシピ10.1 プロキシサーバを保護する
        レシピ10.2 プロキシサーバがオープンなメールリレーとして使われることを防ぐ
        レシピ10.3 別のサーバにリクエストを転送する
        レシピ10.4 特定の場所へのプロキシ経由のリクエストを遮断する
        レシピ10.5 別のサーバでmod_perlのコンテンツを生成する
        レシピ10.6 キャッシュプロキシサーバを設定する
        レシピ10.7 プロキシ経由のコンテンツにフィルタをかける
        レシピ10.8 プロキシ対象のコンテンツについて認証を要求する

11章     性能
        レシピ11.1 必要なメモリ容量を見積もる
        レシピ11.2 abでApacheにベンチマークを実施する
        レシピ11.3 キープアライブの設定を調整する
        レシピ11.4 サイトの動作のスナップショットを取得する
        レシピ11.5 DNS検索を防止する
        レシピ11.6 シンボリックリンクを最適化する
        レシピ11.7 .htaccessによる性能への影響を最小限に抑える
        レシピ11.8 コンテンツネゴシエーションを使用不能にする
        レシピ11.9 プロセスの生成を最適化する
        レシピ11.10        スレッドの生成を調整する
        レシピ11.11        頻繁に参照されるファイルをキャッシュする
        レシピ11.12        mod_proxyを使用してサーバ間の負荷を分散する
        レシピ11.13        複数のサーバ間で均等に負荷を分散する
        レシピ11.14        ディレクトリのリストをキャッシュする
        レシピ11.15        mod_perlでPerlのCGIプログラムの速度を改善する

12章     その他の課題
        レシピ12.1 ディレクティブを適切な場所で設定する
        レシピ12.2 .htaccessファイルの名前を変更する
        レシピ12.3 ディレクトリまたはフォルダのリストを生成する
        レシピ12.4 「末尾のスラッシュ」の問題を解決する
        レシピ12.5 ブラウザの機能に応じてコンテンツのタイプを設定する
        レシピ12.6 Hostフィールドがないリクエストに別の処理を実行する
        レシピ12.7 別のデフォルト文書を使用する
        レシピ12.8 デフォルトの「お気に入りアイコン」をセットアップする

付録A     Apacheの正規表現
        A.1     正規表現を使用できるディレクティブ
        A.2     正規表現の基礎
        A.3     例
        A.4     参考情報

付録B トラブルシューティング
        B.1     トラブルシューティングの手法
        B.2     設定のデバッグ
        B.3     スクリプトヘッダが正しく終了していない場合のデバッグ
        B.4     Windows固有の問題
        B.5     ビルド時のエラーの修復
        B.6     SSIを使用
        B.7     リライト先のページが見つからない場合のデバッグ
        B.8     .htaccessファイルが作用しない場合のデバッグ
        B.9     アドレスがすでに使用中の場合のデバッグ

索引