ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Apache HTTP Server とは
Apache HTTP Server(通称 httpd / Apache)は、Apache Software Foundation が開発するオープンソースの Web サーバソフトウェアです。1995 年に NCSA HTTPd のフォークとして誕生し、約 30 年の歴史を持つ Web サーバの代表格。長年シェア No.1 を維持してきましたが、近年は Nginx に押されつつも、なお世界の Web サーバの 3 割前後を占めています。
| 項目 | 内容 |
|---|---|
| 初版 | 1995 年 |
| 開発元 | Apache Software Foundation (ASF) |
| ライセンス | Apache License 2.0 |
| 現行版 | 2.4 系(2026 時点) |
| 対応 OS | Linux / BSD / macOS / Windows / Solaris ほか |
| 言語 | C |
| サービス名 | RHEL 系: httpd / Debian 系: apache2 |
MPM(Multi-Processing Module)
Apache はリクエストの処理方式を MPM で切り替えられます。性能特性が大きく変わるので選定が重要:
| MPM | 方式 | 特徴 | 用途 |
|---|---|---|---|
prefork | プロセス × 1 リクエスト | 安定。スレッド非対応モジュール(mod_php)と相性◎ | PHP(mod_php)、互換性重視 |
worker | プロセス + スレッド | メモリ少なめ、スレッドセーフ要件あり | 静的 + 動的混在 |
event | worker 改良。Keep-Alive をイベント駆動 | 大量同時接続に強い。2.4 のデフォルト | 高負荷リバプロ、API ゲートウェイ |
主要モジュール
Apache はモジュール式で機能を追加します。代表例:
| モジュール | 役割 |
|---|---|
mod_rewrite | URL 書き換え(リダイレクト・SEO 用 URL) |
mod_ssl | HTTPS / TLS 対応 |
mod_proxy / mod_proxy_http | リバースプロキシ |
mod_headers | HTTP ヘッダの追加・編集 |
mod_deflate | gzip 圧縮 |
mod_php | PHP を Apache プロセスに組込(prefork のみ) |
mod_wsgi | Python アプリ(Django/Flask)統合 |
mod_security | WAF(Web Application Firewall) |
mod_status | /server-status でメトリクス公開 |
インストール
# RHEL / CentOS / Rocky / AlmaLinux
sudo dnf install httpd
sudo systemctl enable --now httpd
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --reload
# Debian / Ubuntu
sudo apt update
sudo apt install apache2
sudo systemctl enable --now apache2
# macOS(標準同梱)
sudo apachectl start
# 設定: /etc/apache2/httpd.conf
# Windows(公式は Apache Lounge / XAMPP / Bitnami 経由)
# https://www.apachelounge.com/download/
設定ファイルの構造
ディストリビューションで配置が異なります:
| 系統 | メイン設定 | 仮想ホスト | モジュール |
|---|---|---|---|
| RHEL 系 | /etc/httpd/conf/httpd.conf | /etc/httpd/conf.d/*.conf | /etc/httpd/conf.modules.d/ |
| Debian 系 | /etc/apache2/apache2.conf | /etc/apache2/sites-available/ + sites-enabled/ | /etc/apache2/mods-available/ + mods-enabled/ |
Debian では有効化スクリプトが用意されています:
# モジュールの有効化 / 無効化
sudo a2enmod rewrite ssl headers proxy
sudo a2dismod cgi
# 仮想ホストの有効化 / 無効化
sudo a2ensite mysite.conf
sudo a2dissite 000-default.conf
# 設定反映
sudo systemctl reload apache2
典型的な仮想ホスト設定
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
# HTTP → HTTPS リダイレクト
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
ServerName example.com
DocumentRoot /var/www/example
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
# セキュリティヘッダ
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Nginx との比較
| 項目 | Apache | Nginx |
|---|---|---|
| 処理方式 | プロセス / スレッド(event MPM はイベント駆動) | 純粋イベント駆動 |
| 静的配信性能 | 普通 | 高速 |
| .htaccess | あり(ディレクトリ単位設定) | なし(メイン conf のみ) |
| モジュール追加 | 動的ロード可 | 原則ビルド時組込 |
| 設定構文 | XML 風タグ | 独自ブロック構文 |
| PHP 連携 | mod_php / PHP-FPM | PHP-FPM のみ |
| 得意分野 | 動的サイト、複雑なリライト | 静的配信、リバプロ、高同時接続 |
PHP との連携: mod_php vs PHP-FPM
mod_php: Apache プロセスに PHP を組み込む。設定が楽だが、prefork 限定でメモリ消費大。
PHP-FPM: PHP を別プロセス(FastCGI)として常駐させ、Apache から mod_proxy_fcgi 経由で呼び出す。event MPM と組み合わせて高性能。Nginx 互換のデプロイ構成に。
# PHP-FPM 連携(推奨)
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost"
運用コマンド
# 起動・停止・再起動
sudo systemctl start httpd # RHEL
sudo systemctl start apache2 # Debian
sudo apachectl start # 共通
# 設定再読み込み(無停止)
sudo systemctl reload httpd
sudo apachectl graceful
# 構文チェック(reload 前に必須)
sudo apachectl configtest
sudo httpd -t
# 有効モジュール一覧
httpd -M
apache2ctl -M
# 仮想ホスト一覧
httpd -S
# バージョン
httpd -V
FAQ
Q: Apache と httpd は同じもの?
A: 同じです。httpd は Apache HTTP Server の実行ファイル名。RHEL 系ではサービス名としても httpd を使います。
Q: もう Apache は古い?
A: いいえ。2.4 event MPM + PHP-FPM なら Nginx と並ぶ性能が出ます。.htaccess や mod_rewrite の柔軟性は依然強み。
Q: Apache と Tomcat は何が違う?
A: Apache HTTP Server は静的配信 + リバプロ、Tomcat はJava サーブレットコンテナ(アプリケーションサーバ)。役割が違うので、Apache + Tomcat の組み合わせもよく使われます。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
- Apache HTTP Server
- Apache Tomcat
- Nginx
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?