====== Apache HTTP Server ====== このページはUbuntuにおけるApache HTTP Server(以下:Apache)の説明になっています。 {{:ubuntu:logo_apache.png?400|Apacheのロゴ}} ---- ===== Apacheの基本機能 ===== * HTTP/1.1のサポート * HTTP/2のサポート * CGI SSI などの動的コンテンツの実行 * VirtualHost機能 * Proxyサーバー機能 * 認証機能 * SSLによる暗号化通信 ===== Apacheのインストール ===== $ sudo apt install apache2 ==== サービスの確認 ==== Webブラウザを起動して「http://localhost/」または「http://127.0.0.1/」(自分自身に設定されたIPアドレス)にアクセスする。 ===== Apacheの概要 ===== Apacheの基本的な機能は「core」にある。これに必要なモジュールを追加することで用途に適したWebサーバーが構築される。 ==== 静的モジュール ==== Apacheのプログラム本体に組み込まれているモジュール \\ ==== 動的モジュール ==== Apacheを再コンパイルすることなく動的に組み込めるモジュール。通常ディストリビューションは殆どのモジュールを動的モジュールにしている。 ※モジュールのパッケージ名の多くは「libapache2」という名前で始まる。 \\ === 動的モジュールの置かれている場所 === **「/lib/apache2/modules」** \\ ==== モジュールの確認 ==== 組み込まれている静的モジュールの確認 $ apachectl -l 現在、有効になっているすべてのモジュールの確認 $ apachectl -M \\ ===== Apacheの基本制御 ===== Ubuntuではサービスを管理する「systemd」がサービスの起動や停止を制御する。「systemd」に処理の要求などを行うには「systemctl」コマンドを使用する。 ==== systemctlによる制御 ==== Apacheを開始する $ sudo systemctl start apache2.service ※「.service」は省略可。(以下省略) Apacheを停止する $ sudo systemctl stop apache2 Apacheの設定ファイルを再読み込みする $ sudo systemctl reload apache2 Apacheを再起動する $ sudo systemctl restart apache2 Apacheの動作状況を確認する $ sudo systemctl status apache2 ※「Active:」の項目が「active (running)」となっていれば動作中。「inactive (dead)」となっていれば停止している。 Apacheの自動起動 $ sudo systemctl enable apache2 Apacheの自動起動の無効化 $ sudo systemctl disable apache2 \\ ===== Apacheの基本事項 ===== ==== ドキュメントルートの場所 ==== **「/var/www/html」** \\ ==== 設定・関連ファイルの場所 ==== **「/etc/apache2」(基本的な設定ファイルが置かれるディレクトリ)** \\ **「/etc/apache2/apache2.conf」(メインの設定ファイル)** ※最初にこの設定ファイルが読み込まれ、ここから他の設定ファイルも読み込まれるようになっている ※他の設定ファイル…「ports.conf」と「-enabled」で終わるディレクトリにある設定ファイルが読み込まれる \\ ==== 設定ファイルの形式 ==== テキストにより記述される。1行につきひとつの「ディレクティブ」と呼ばれる指示が記述される。「#」で始まる行はコメントとみなされ無視される。指示の範囲の限定には「<」「>」が使用される。(からなど) ==== 設定ファイルの構成 ==== **「/etc/apache2/conf-available/」** グローバル構成フラグメントの設定ディレクトリ(全ての設定ファイル) \\ **「/etc/apache2/conf-enabled/」** グローバル構成フラグメントの設定ディレクトリ(有効化された設定ファイル) \\ **「/etc/apache2/envvars」** apacheの環境変数の設定が記述されているファイル \\ **「/etc/apache2/magic」** Apacheが拡張子を見てファイルの種類を判別するためのファイル \\ **「/etc/apache2/mods-available/」** モジュールの設定ディレクトリ(全ての設定ファイル) \\ **「/etc/apache2/mods-enabled/」** モジュールの設定ディレクトリ(有効化されたモジュール設定ファイル) \\ **「/etc/ports.conf」** ポートに関する設定(デフォルトでは80が設定されている) \\ **「/etc/apache2/sites-available/」** VertualHostの設定ディレクトリ(全ての設定ファイル) \\ **「/etc/apache2/sites-enabled/」** VirtualHostの設定ディレクトリ(有効化されたホスト設定ファイル) \\ **「/etc/apache2/conf.d/」** Apacheの設定を追加するためのファイルを置くディレクトリ \\ ===== Apacheの基本設定 ===== **既存の設定ファイルは書き換えない。** メインの設定ファイル「apache2.conf」がenabledディレクトリのconfファイル(モジュールに関してはloadファイルも)を読み込む。 ※有効化された設定ファイルが読み込まれる。 新規サイト設定はavailableディレクトリにconfファイルを作成し有効化する。有効化されたconfファイルのシンボリックリンクがenabledディレクトリに作成される。 ==== 設定ファイルの有効化と無効化のコマンド ==== |< 100% 40% 30% 30%>| ^ ディレクトリ ^ 有効化 ^ 無効化 ^ | conf | a2enconf | a2disconf | | mods | a2enmod | a2dismod | | sites | a2ensite | a2dissite | ==== 設定ファイルが読み込まれる順序 ==== 1~7の順番でファイルが読み込まれる。 |< 100% 5% 25% 70%>| ^ ^ 設定ファイル ^ 概要 ^ | 1 | apache2.conf | 全体で共通の設定(設定ファイルのパスやエラーログの指定) | | 2 | mods-enabled/*.load | モジュールのロード | | 3 | mods-enabled/*.conf | ロードされたモジュールの基本的な設定 | | 4 | ports.conf | ポート番号の設定 | | 5 | apache2.conf | 各ディレクトリの基本的な設定。ログの形式の設定など | | 6 | conf-enabled/*.conf | 一般的な設定(文字エンコーディングやエラーページ、セキュリティなど) | | 7 | sites-enabled/*.conf | バーチャルホスト(複数ドメインの運用)に関する設定 |