Apache Webサーバーの設定
ServBayでは、組み込まれたApache Webサーバーパッケージの管理および設定が簡単に行えます。ServBayのグラフィカルユーザーインターフェースを利用し、各種開発プロジェクトの要件に合わせてApacheのコア設定を柔軟に調整できます。
Apache設定へのアクセス
- ServBayアプリケーションを開きます。
- 左側のナビゲーションバーで「Webサーバー」をクリックします。
- 「Apache」タブを選択します。
以下の画像のように、Apacheの設定画面が表示されます。
主な設定項目の説明
Apache設定画面における各パラメータの詳細は次のとおりです。
基本設定
- HTTP Port: ApacheがHTTPプロトコルで待ち受けるポート。デフォルトは
80
。 - HTTPS Port: ApacheがHTTPSプロトコルで待ち受けるポート。デフォルトは
443
。 - Server Name: サーバーの識別に使われる名前およびポート。デフォルトの
127.0.0.1
は通常ローカルアクセス用。 - Server Root: Apacheパッケージがインストールされているルートディレクトリ。注意: これはWebサイトのファイル保存ディレクトリ(WebサイトのルートディレクトリはWebサイト追加時に個別設定)ではなく、Apacheのプログラムファイルが存在するパスです。通常デフォルトは
/Applications/ServBay/package/apache/current
。
パフォーマンスチューニング (Performance Tuning)
- Timeout: サーバーがI/O操作に対して待機する最大秒数。デフォルトは
300
秒。 - Max KeepAlive Requests: 一つの持続接続で処理可能な最大リクエスト数。
1000
は多数のリクエスト再利用を許可、0
で無制限。 - KeepAlive Timeout: 次のリクエストを待機するために、持続接続を維持する最大秒数。デフォルトは
60
秒。 - Keep Alive: HTTPの持続接続(KeepAlive)の有効/無効。パフォーマンス向上のため
On
推奨。 - MPM StartServers: サーバー起動時に生成する子プロセス数。
- MPM MaxSpareThreads: 最大アイドルスレッド数。急増するリクエストに備えて予備スレッド数を制御。
- MPM MaxConnectionsPerChild(旧MaxRequestsPerChild): 各子プロセスがライフサイクル中に処理可能な最大接続数。
0
で無制限。メモリリーク対策に有効。 - MPM MaxRequestWorkers(旧MaxClients): 全子プロセスで同時に処理可能な最大並列リクエスト数。Apacheのパフォーマンスに直結する重要パラメータ。
- MPM ThreadsPerChild: 各子プロセスが生成するスレッド数(
worker
またはevent
MPM向け)。
機能・特性 (Features & Characteristics)
- Access File Name: 分散設定ファイルの名称設定。通常は
.htaccess
を指定し、このファイルによるメイン設定の上書き可否を管理。 - Use Canonical Name: Apacheが自己参照URLを生成する方法を制御。
Off
が柔軟性高め。 - Server Signature: サーバー生成ページ(エラーページなど)の下部に、サーバーバージョンやバーチャルホスト名などを表示。セキュリティ観点から本番環境では
Off
推奨。 - Hostname Lookups: リクエスト元IPアドレスからホスト名をDNS逆引きで取得するかどうか。
Off
でパフォーマンス向上(DNSクエリは遅い場合あり)。 - Server Tokens: サーバーレスポンスヘッダー(
Server:
)の情報量を制御。Minor
(例: Apache/2.4)はFull
(例: Apache/2.4.58 (Unix) PHP/8.3.1)より安全。Prod
はApache
のみ表示。
管理とログ (Admin & Logging)
- Server Admin: クライアントに返されるエラーメッセージに表示される管理者メールアドレス。
- Log Level: エラーログ(
error_log
)に記録されるメッセージの詳細度合い。warn
はよく使われるレベルで、警告以上のエラーを記録。その他レベルとしてdebug
,info
,notice
,error
,crit
,alert
,emerg
など。
モジュール (Modules)
このエリアには利用可能なApacheモジュールが一覧表示されます。必要なモジュールをチェックして有効化、不要なものはチェックを外して無効化できます。代表的なモジュール例:
mod_rewrite
: URLリライト用。mod_ssl
: SSL/TLS(HTTPS)対応。mod_deflate
: 転送データの圧縮。mod_expires
: キャッシュヘッダー制御。mod_proxy
および関連モジュール: リバースプロキシ用。mod_auth_basic
,mod_auth_digest
: ベーシック・ダイジェスト認証用。
モジュールの有効/無効化後、設定保存とApacheサービスの再起動で反映されます。
ディレクトリインデックス (Directory Index)
- Directory Index: 指定URLがディレクトリの場合に、Apacheがその中で検索するファイルリスト。順にチェックし、最初に存在するファイルの内容を返します。デフォルト値は
index.html index.htm index.php
が一般的。
SSL/TLS設定
これらの項目は、ApacheのHTTPS機能を設定するものです。
- SSLCipherSuite / TLSCipherSuite: サーバーで許可される暗号スイートの指定。最新かつ強力なスイート推奨。ServBayでは推奨値を初期設定済み。
- SSLProxyCipherSuite: Apacheがリバースプロキシ動作時に使用するSSL接続の暗号スイート設定。
- SSLHonorCipherOrder:
On
でサーバー側の優先暗号スイートを強制。On
推奨。 - SSLStrictSNIVHostCheck:
On
にすると、SNI(Server Name Indication)で要求されたホスト名が定義済みバーチャルホストと一致しない場合は接続拒否し、セキュリティ向上。 - ProtocolHonorOrder:
SSLHonorCipherOrder
と同様だが、プロトコルバージョンの優先交渉に適用。 - SSLProtocol: 許可するSSL/TLSプロトコルバージョンの指定例。
all -SSLv2 -SSLv3
は現代的な全プロトコル許可、古い脆弱なSSLv2/v3は無効。 - SSLProxyProtocol: Apacheがリバースプロキシとして動作時に使うSSL接続の許可プロトコルバージョン。
- Protocols: 対応プロトコルの交渉順や種類を設定。たとえば
h2 h2c http/1.1
でHTTP/2(暗号化h2
または平文h2c
)を優先し、次いでHTTP/1.1を使用。
保存とリセット
- Reset: このボタンでApacheの全設定をServBayのデフォルト値にリセット。
- Save: このボタンでApache設定変更を保存。保存後は通常、ServBayが自動適用します。Apacheサービスが稼働中の場合は短時間の再起動が必要なこともあります。
重要な注意事項
- ここで設定するのはApacheのグローバル設定です。個々のWebサイト(バーチャルホスト)ごとの設定(
DocumentRoot
や特定のRewriteRule
等)は、Webサイト追加や編集時に個別で行います。 - 設定画面上部に「Service Apache is not enabled」と表示されている場合、Apacheサービスは現在動作していません。この場合でも設定の編集・保存は可能ですが、設定内容は次回Apache起動時に反映されます。ApacheはServBayメインパネルまたは「パッケージ」メニューから起動可能です。
まとめ
ServBayでは、Apache Webサーバーのコア設定を直感的に管理できるインターフェースを提供しています。各種オプションの意味を理解することで、開発要件に合わせてApacheの動作・パフォーマンスやセキュリティを最適化し、ServBayをローカル開発環境として最大限に活用できます。