Apacheハンドブック 第3版

[cover photo]
TOPICS
Web , System/Network , Linux , PHP
発行年月日
PRINT LENGTH
676
ISBN
4-87311-150-1
原書
Apache: The Definitive Guide, 3rd Edition
FORMAT

本書はApache HTTPサーバについての解説書として定番となった『Apacheハンドブック』の第3版にあたります。Apacheの入手方法からコンパイル、インストール、設定、そして改造方法までを幅広く解説します。改訂にあたり、PHP、Tomcat、Cocoon、セキュリティなどに関する記述を強化しました。さらに、大規模なWebサイトの運用、ログの記録、バーチャルホストなどについても詳細に解説しています。巻末には日々の運用/設定に便利なリファレンスカードを収録。Apache 1.3だけでなく最新バージョンの2.0にも対応しました。Apacheの設定から運用までをくまなく解説し、Apacheのすべてがわかる本書はWebサーバ管理者必携の一冊です。

正誤表

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

正誤表1


2004年5月、2刷で修正済みです。

■25ページ 2つめのコードリスト
以下を削除
<削除> mod_alias.c

■443ページ 2つめの見出し
<修正前>
ApJServLogFile
<修正後>
ApJServLogLevel

■644ページ
<修正前>
Webアプリケーション・・・・・・3150
<修正後>
Webアプリケーション・・・・・・350

■639ページ 索引追加
ApJServLogLevel・・・・・・443

目次

監訳者まえがき
まえがき

1章 はじめてみよう
        1.1 Webサーバの役割
                1.1.1 Webサーバの選択基準
                1.1.2 なぜApacheなのか
        1.2 Apacheの動作について
        1.3 Apacheとネットワーク
                1.3.1 TCP/IPに関する基礎知識
                1.3.2 ApacheとTCP/IP
                1.3.3 ApacheとDNS
        1.4 HTTPクライアントの動作
        1.5 サーバ側での動作
        1.6 Apacheのインストールの計画
                1.6.1 Apacheのネットワークとの接続
                1.6.2 どのOSを使用するか
                1.6.3 どのUnixを使用するか
        1.7 Windowsは使えるか
        1.8 Apacheのバージョン
                1.8.1 Apache 2.0
                1.8.2 Apache 2.0とWin32
        1.9 Apacheのインストール
                1.9.1 Unix版のApacheバイナリ
                1.9.2 UnixでのApache 1.3.Xのメイク
                1.9.3 Unix版のモジュール
        1.10 UnixでのApache 1.3.Xのビルド
                1.10.1 全自動設定
                1.10.2 半自動のビルド設定
                1.10.3 モジュールの選択
                1.10.4 共有オブジェクト(DSOモジュール)
                1.10.5 Configurationの設定とルール
                1.10.6 Apacheのメイク
        1.11 Apacheバージョン2の新機能
                1.11.1 バージョン2でのConfigファイルに関する変更点
                1.11.2 httpdコマンドラインの変更点
                1.11.3 バージョン2でのモジュールに関する変更点
        1.12 UnixでのApacheバージョン2のメイクとインストール
        1.13 Win32でApacheを使う
                1.13.1 Win32版のモジュール
                1.13.2 Win32でApacheをコンパイルする

2章 Apacheの設定:最初のステップ
        2.1 Apacheで作るWebサイトとは
                2.1.1 コマンドラインでのApacheの実行
        2.2 site.toddle
        2.3 Unixサーバの設定
                2.3.1 WebuserとWebgroup
                2.3.2 全自動設定によるデフォルトの問題
                2.3.3 UnixでのApacheの実行
                2.3.4 複数のApacheプロセス
                2.3.5 Unixパーミッション
                2.3.6 ローカルネットワーク
        2.4 Win32サーバの設定
                2.4.1 コンソールウィンドウ
                2.4.2 サービスとしてのApache
        2.5 ディレクティブ
                2.5.1 ServerName
                2.5.2 DocumentRoot
                2.5.3 ServerRoot
                2.5.4 ErrorLog
                2.5.5 PidFile
                2.5.6 TypesConfig
                2.5.7 Configファイルに含めるファイルの指定
        2.6 共有オブジェクト
                2.6.1 Unixにおける共有オブジェクト
                2.6.2 Win32での共有モジュール

3章 実際的なWebサイト
        3.1 よりよいWebサイトをより多く:site.simple
                3.1.1 ErrorDocument
        3.2 Butterthlies社
                3.2.1 デフォルトIndex
                3.2.2 index.html
        3.3 ブロックディレクティブ
        3.4 その他のディレクティブ
        3.5 HTTPレスポンスヘッダ
                3.5.1 FollowSymLinksとSymLinksIfOwnerMatch
        3.6 再起動
        3.7 .htaccess
        3.8 CERNメタファイル
        3.9 ファイルの有効期限

4章 バーチャルホスト
        4.1 2つのサイトとApache
        4.2 バーチャルホスト
                4.2.1 名前ベースのバーチャルホスト
                4.2.2 IPアドレスベースのバーチャルホスト
                4.2.3 名前/IPアドレス混合のバーチャルホスト
                4.2.4 ポートベースのバーチャルホスト
        4.3 2つのApache
        4.4 バーチャルホストの動的な設定
                4.4.1 例

5章 認証
        5.1 認証のプロトコル
                5.1.1 site.authent
        5.2 認証に使われるディレクティブ
        5.3 Unixでのパスワード
        5.4 Win32でのパスワード
        5.5 Webでのパスワード
        5.6 クライアントからのテスト
                5.6.1 Configファイル
        5.7 CGIスクリプト
        5.8 さまざまな設定のテスト
        5.9 order、allow、deny
        5.10 UnixでのDBMファイル
                5.10.1 AuthDBUserFile
                5.10.2 AuthDBMUserFile
        5.11 ダイジェスト認証
                5.11.1   ContentDigest
        5.12 Anonynmousアクセス
        5.13 実験
                5.13.1 Access.conf
        5.14 自動ユーザ情報
                5.14.1 IdentityCheck
        5.15 .htaccessファイルの利用方法
                5.15.1 AccessFileName
        5.16 設定の上書き
                5.16.1 AllowOverride

6章 MIME、コンテンツ、言語ネゴシエーション
        6.1 MIMEタイプ
        6.2 コンテンツネゴシエーション
                6.2.1 MultiviewsMatch
                6.2.2 画像ネゴシエーション
        6.3 言語ネゴシエーション
        6.4 タイプマップ
        6.5 ブラウザとHTTP 1.1
        6.6 フィルタ

7章 インデックス
        7.1 Apacheが生成するインデックスの改良
        7.2 独自のインデックスの作成
                7.2.1 DirectoryIndex
        7.3 イメージマップ
                7.3.1 HTMLファイル
                7.3.2 マップファイル
        7.4 イメージマップのディレクティブ

8章 リクエストのリダイレクト
        8.1 Alias
                8.1.1 微妙な問題
        8.2 URLのリライト
                8.2.1 リライトの例
        8.3 スペルチェック
                8.3.1 CheckSpelling

9章 プロキシ
        9.1 セキュリティ
        9.2 プロキシサーバのディレクティブ
        9.3 バグのように思える動作
        9.4 パフォーマンス
                9.4.1 内部向けのキャッシュ
        9.5 プロキシサーバの設定
                9.5.1 リバースプロキシ

10章 ログの記録
        10.1 スクリプトとデータベースによるログの記録
        10.2 Apacheのログ記録機能
                10.2.1 site.authent―もう1つの例
        10.3 設定情報のレポート
                10.3.1 AddModuleInfo
        10.4 ステータス
                10.4.1 サーバステータス
                10.4.2 ExtendedStatus

11章 セキュリティ
        11.1 内部ユーザと外部ユーザ
        11.2 電子署名とバーチャルキャッシュ
        11.3 証明書
        11.4 ファイアウォール
                11.4.1 パケットフィルタリング
                11.4.2 ネットワークの分離
        11.5 法律上の問題
        11.6 SSL(Secure Sockets Layer)の利用法
        11.7 Apacheにおけるセキュリティ上の予防措置
                11.7.1 Apacheバージョン1.3でのSSLの利用
                11.7.2 Apacheバージョン1.3でのmod_sslの利用
                11.7.3 Apacheバージョン2でのSSLの利用
                11.7.4 テスト証明書の作成
                11.7.5 サーバ証明書の取得
                11.7.6 グローバルセッションキャッシュ
        11.8 SSL用のディレクティブ
                11.8.1 Apacheバージョン1.3用のApache-SSLディレクティブ
                11.8.2 Apacheバージョン2用のSSL関連ディレクティブ
        11.9 暗号スイート
                11.9.1 Apacheバージョン1.3用の暗号関連ディレクティブ
                11.9.2 Apacheバージョン2用の暗号関連ディレクティブ
        11.10 実際的なセキュリティ
                11.10.1 セキュリティの手引き
                11.10.2 デモンストレーション用クライアント証明書の取得
                11.10.3 CA証明書の取得
        11.11 今後の動向
                11.11.1 SE Linux
                11.11.2 EROS
                11.11.3 E

12章 大規模なWebサイトの運用
        12.1 マシンの設定
        12.2 サーバのセキュリティ
                12.2.1 rootパスワード
                12.2.2 ファイルの配置場所と所有権
                12.2.3 Apache Webサイト
        12.3 大規模なWebサイトの管理
                12.3.1 開発用マシン
                12.3.2 ベータテスト
                12.3.3 公開用のサイト
                12.3.4 サイト更新手順
                12.3.5 メンテナンス用ページ
        12.4 サポートソフトウェア
                12.4.1 データベース管理システム
                12.4.2 メールサーバ
                12.4.3 PGP
                12.4.4 サーバへのSSHアクセス
                12.4.5 クレジットカード
                12.4.6 パスワード
                12.4.7 不要なサービスの無効化
                12.4.8 バックエンドのネットワーク
                12.4.9 SuEXEC
                12.4.10 SSL
                12.4.11 サイト証明書
        12.5 スケーラビリティ
                12.5.1 パフォーマンス
                12.5.2 共有データベースと複製データベース
        12.6 負荷分散
                12.6.1 負荷分散
                12.6.2 mod_backhand
                12.6.3 mod_backhandのインストール
                12.6.4 ディレクティブ
                12.6.5 候補関数
                12.6.6 Configファイル
                12.6.7 サンプルサイト

13章 アプリケーションの構築
        13.1 アプリケーションとしてのWebサイト
                13.1.1 HTTPメソッドについて
                13.1.2 フォームの作成
                13.1.3 他のアプローチによるアプリケーションの構築
        13.2 アプリケーションロジックの提供
                13.2.1 SSI
                13.2.2 PHP
                13.2.3 Perl
                13.2.4 Java
                13.2.5 その他のオプション
        13.3 XML、XSLTとWebアプリケーション

14章 SSI(Server-Side Includes)
        14.1 ファイルサイズ
        14.2 ファイル更新時刻
        14.3 ファイルの挿入(include)
        14.4 CGIの実行
        14.5 echo
        14.6 SSIフィルタ(Apacheバージョン2)

15章 PHP
        15.1 PHPのインストール
        15.2 Site.php
                15.2.1 エラー
                15.2.2 スタンドアロンのPHPスクリプト

16章 CGIとPerl
        16.1 CGIの世界
                16.1.1 スクリプトの記述と実行
                16.1.2 スクリプトとApache
        16.2 スクリプトを使用するためのApacheの設定
                16.2.1 cgi-binにスクリプトを置く場合
                16.2.2 DocumentRootにスクリプトを置く場合
                16.2.3 Perl
                16.2.4 データベース
                16.2.5 HTML
                16.2.6 Apacheを介したスクリプトの実行
                16.2.7 引用符
                16.2.8 HTTPヘッダ
                16.2.9 クライアントからデータを受け取る
                16.2.10 環境変数
        16.3 環境変数の設定
        16.4 Cookie
                16.4.1 Apacheのcookie
                16.4.2 Configファイル
                16.4.3 電子メール
                16.4.4 検索エンジンとCGI
                16.4.5 デバッグ
                16.4.6 デバッガ
                16.4.7 セキュリティ
        16.5 CGIのディレクティブ
        16.6 UNIXでのsuEXEC
                16.6.1 suEXECのデモンストレーション
        16.7 ハンドラ
        16.8 アクション
                16.8.1 Action
        16.9 ブラウザ

17章 mod_perl
        17.1 mod_perlの仕組み
        17.2 mod_perlのマニュアル
        17.3 mod_perlのインストール(簡易な手順)
                17.3.1 複数のモジュールのリンク
                17.3.2 テスト
                17.3.3 インストールの落とし穴
        17.4 mod_perlで動作するスクリプトへの修正
        17.5 グローバル変数
                17.5.1 Perlのフラグ
        17.6 Strictプラグマ
        17.7 変更のロード
        17.8 ファイルのオープンとクローズ
        17.9 mod_perlを使うためのApacheの設定
                17.9.1 パフォーマンスのチューニング
                17.9.2 スクリプトの高速化

18章 mod_jservとTomcat
        18.1 mod_jserv
                18.1.1 gmakeのメイク
                18.1.2 JServのビルド
                18.1.3 JServ関連のディレクティブ
                18.1.4 JServのステータス
                18.1.5 サーブレットの作成
        18.2 Tomcat
                18.2.1 JDKのインストール
                18.2.2 Tomcatのインストール
                18.2.3 Tomcatのディレクトリ構造
                18.2.4 conf
                18.2.5 サーブレットの作成とテスト
        18.3 TomcatをApacheに接続する
                18.3.1 mod_jk

19章 XMLとCocoon
        19.1 XML
        19.2 XMLとPerl
        19.3 Cocoon
        19.4 Cocoon 1.8とJServ
        19.5 Cocoon 2.0.3とTomcat
        19.6 Cocoonのテスト

20章 Apache API
        20.1 ドキュメント
        20.2 APR
        20.3 プール
        20.4 サーバごとの設定
        20.5 ディレクトリごとの設定
        20.6 リクエストごとの情報
        20.7 設定およびリクエスト情報へのアクセス
        20.8 フック、オプションフック、オプション関数
                20.8.1 フック
                20.8.2 オプションフック
                20.8.3 オプションフックの例
                20.8.4 オプション関数
                20.8.5 オプション関数の例
        20.9 フィルタ、バケット、バケットグループ
                20.9.1 バケットインタフェース
                20.9.2 出力フィルタ
                20.9.3 入力フィルタ
        20.10 モジュール

21章 Apacheモジュールの作成
        21.1 概説
        21.2 ステータスコード
        21.3 module構造体
        21.4 完全なプログラミング例
                21.4.1 概説
                21.4.2 出力例
        21.5 一般的なヒント
        21.6 Apacheバージョン2.0への移植

付録 Apache 1.x API
        付録1 プール
        付録2 サーバごとの設定
        付録3 ディレクトリごとの設定
        付録4 リクエストごとの情報
        付録5 設定およびリクエスト情報へのアクセス
        付録6 関数
                付録6.1 プール関数
                付録6.2 配列関数
                付録6.3 テーブル関数
                付録6.4 クリーンアップ関数
                付録6.5 ファイルおよびソケット関数
                付録6.6 正規表現関数
                付録6.7 プロセスおよびCGI関数
                付録6.8 MD5関数
                付録6.9 同期化およびスレッド関数
                付録6.10 日付と時刻に関する関数
                付録6.11 文字列関数
                付録6.12 パス、ファイル名、およびURL操作関数
                付録6.13 ユーザおよびグループ関数
                付録6.14 TCP/IPおよびI/O関数
                付録6.15 リクエスト処理関数
                付録6.16 タイムアウトおよびアラーム関数
                付録6.17 コンフィグレーション関数
                付録6.18 コンフィグレーション情報関数
                付録6.19 サーバ情報関数
                付録6.20 ログ記録関数
                付録6.21 パイプ経由ログ関数
                付録6.22 バッファリング関数
                付録6.23 URI関数
                付録6.24 その他の関数

索引