【簡単】Apacheの設定方法を実例付きで紹介|基本用語も丁寧に解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年9月)

✔このような方へおすすめの記事です

「Apacheの設定がどういうものか詳しく知りたい」

「Apacheの設定のやり方を覚えたい」

「Apache設定の実例が目に見える形で欲しい」

✔当記事を読むことで得られる知識

  • Apacheの基本的な設定について
  • Apacheの設定方法とその洗練された応用
  • Apache設定の実践的な例

当記事では、Apacheの基本設定から最適化まで、事例を通じて詳細な手順を紹介しています。

ぜひ最後までお読みください。

皆様のApache設定スキルの向上に必ず貢献できる内容となっています。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Apacheの設定手順

Apacheを使用する際の基本的な設定手順について詳しく解説します。

正確な設定により、Webサイトの安定性やセキュリティを向上させられるでしょう。

  • インストール後のディレクトリ修正
  • ポート番号の変更
  • ServerNameの設定

インストール後のディレクトリ修正

Apacheをインストールしたのち、デフォルトのディレクトリ構造を、必要に応じて変更することがおすすめです。

デフォルトのディレクトリ構造は一般的な用途に適しているものの、特定のプロジェクトやセキュリティ上の要件に応じて変更することが望ましい場合があります。

  • /etc/httpd/(Ubuntuの場合、/etc/apache2/)
    このディレクトリにはApacheの主要な設定ファイルやモジュールの設定が格納されています。独自の設定やモジュールを追加する場合、このディレクトリ内を編集する必要があります。
  • /var/www/html
    これはデフォルトのドキュメントルートで、ウェブサイトの公開ファイルやディレクトリが配置されます。異なるパスにドキュメントルートを設定するには、Apacheの設定ファイルでDocumentRootディレクティブを変更します。

ポート番号の変更

デフォルトではApacheはポート80で動作しますが、異なるポート番号で動作させることも可能です。

httpd.confまたは適切な設定ファイル内のListenディレクティブを変更します。

Apacheをポート8080で動作させる場合、以下のように設定します。

Listen 8080

ServerNameの設定

ServerNameディレクティブは、Apacheサーバーがどのドメイン名やIPアドレスで応答するかを指定します。

これは特に仮想ホストを使用して複数のウェブサイトを同じApacheインスタンスでホストする場合に重要です。

ServerName www.example.com

ServerNameを正確に設定することで、クライアントのリクエストが正確なウェブサイトやアプリケーションにルーティングされることを確保します。

誤った設定は、リクエストが誤ったサイトにルーティングされる原因となるため、注意が必要です。

任意の設定方法

Apacheの基本設定の次に、より詳細な設定方法を学びましょう。

サイトの動作を最適化する方法です。

  • ドキュメントルートの変更
  • 設定ファイルの読み込み方
  • 仮想ホストの設定手順

ドキュメントルートの変更

ドキュメントルートは、クライアントからのリクエストが対象とするファイルやディレクトリの基準となる場所です。

デフォルトのドキュメントルート(多くの場合 /var/www/html)以外の場所にウェブコンテンツを置く場合や、特定のプロジェクトのために異なるルートを設定する場合に変更することがあります。

httpd.conf または適当な設定ファイルにある DocumentRoot ディレクティブを変更することで可能です。

DocumentRoot "/path/to/your/webroot"
<Directory "/path/to/your/webroot">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

設定ファイルの読み込み方

Apacheの主要な設定ファイルは httpd.conf ですが、実際には多くの追加設定やモジュールの設定は別のファイルに格納されています。

それらのファイルは、大元の httpd.conf からインクルードされて読み込まれているのです。

これにより、設定を整理しやすく、モジュールごとやサイトごとに分割できます。

IncludeOptional conf/extra/httpd-vhosts.conf

仮想ホストの設定手順

仮想ホストを使用すると、ひとつのApacheサーバーインスタンスで複数のWebサイトをホストできます

基本的な手順は以下のとおりです。

  1. httpd.conf または適当な設定ファイルで、NameVirtualHost *:80 ディレクティブを有効にする
  2. 同じファイル内に <VirtualHost> ブロックを追加し、各サイトの設定を記述する
<VirtualHost *:80>
    ServerAdmin webmaster@example1.com
    DocumentRoot "/path/to/site1"
    ServerName example1.com
    ErrorLog "logs/example1.com-error.log"
    CustomLog "logs/example1.com-access.log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@example2.com
    DocumentRoot "/path/to/site2"
    ServerName example2.com
    ErrorLog "logs/example2.com-error.log"
    CustomLog "logs/example2.com-access.log" common
</VirtualHost>

PHPの基本設定方法

Apacheと連携して動作させるPHPの設定方法について詳しく解説します。

PHPは動的なWebページの生成に広く使用されるスクリプト言語であり、Apacheとの組み合わせは非常に一般的です。

  • PHP インストール手順
  • PHP設定の調整

PHP インストール手順

PHPをApacheと連携させる前に、まずはPHP自体をインストールする必要があります。

異なる方法でのインストール手順を見ていきましょう。

  • yumを使用したインストール方法
  • MacPortsを使用したインストール方法

yumを使用したインストール方法

CentOSやRed HatなどのLinuxディストリビューションでのPHPのインストールは、yumパッケージマネージャを使用して簡単に行うことができます。

sudo yum install php

このコマンドを実行することで、最新のPHPがインストールされます。

MacPortsを使用したインストール方法

Macユーザーは、MacPortsを使用してPHPをインストールすることができます。

sudo port install php

このコマンドを実行することで、MacにPHPがインストールされます。

PHP設定の調整

PHPをインストールした後、Apacheとの連携をスムーズにおこなうための設定調整が必要です。

  • PHPモジュールのパス設定
  • 実行可能なPHPの拡張子の設定

PHPモジュールのパス設定

ApacheがPHPモジュールを正しく読み込むためには、httpd.confに以下の行を追加する必要があります。

LoadModule php_module modules/libphp.so

実行可能なPHPの拡張子の設定

PHPスクリプトを実行するためには、ApacheにどのファイルをPHPとして扱うかを知らせる必要があります。

以下の設定をhttpd.confに追加します。

AddType application/x-httpd-php .php

Apache設定エラーの解決法

Apacheの設定中にはさまざまなエラーが発生する可能性があります。

以下は主なエラーと、その解決方法です。

エラーカテゴリ症状原因解決方法
構文エラーApacheが起動しない設定ファイルの誤ったディレクティブや構文httpd -t でエラー箇所確認、該当箇所の修正
ポート競合Apacheが特定のポートで起動できない別のアプリケーションが同じポート使用中使用中のポート確認、競合アプリの停止またはApacheのポート変更
設定ファイルの読み込みエラー指定した設定ファイルが見つからない、読み込めないファイルパスの誤り、欠落、パーミッション問題正しいパス指定、ファイル配置、適切なパーミッション設定
モジュールのエラー指定したモジュールが読み込めない、動作しないモジュールのパス誤り、未インストール、互換性問題モジュールのパス確認・修正、インストール、適切なバージョン利用
SSL/TLS設定の問題HTTPS接続不可、証明書エラー表示証明書や鍵ファイルの問題、設定の不備証明書や鍵のパス確認、設定見直し、証明書の有効期限/一致確認

Apache設定の凡例

Apacheの設定を最適化するためのヒントや、より高度な設定方法について解説します。

  • セキュリティ強化のための設定
  • パフォーマンス向上のための設定

セキュリティ強化のための設定

セキュリティ強化には以下のような設定を見ていく必要があります。

  1. ServerTokens と ServerSignature
  2. ServerSignature
  3. SSL/TLS の使用
  4. セキュアなHTTPヘッダーの追加

1. ServerTokens と ServerSignature

ServerTokensは、クライアントに返されるサーバーの応答ヘッダーに表示される情報を制御するもの。

セキュリティを強化するためには、最小限の情報だけを表示する設定 (Prod) が推奨されます。

ServerTokens Prod

2.ServerSignature

これは、サーバー生成のページ(例えばエラーページ)のフッターにApacheのバージョン情報などを表示するかを制御します。

セキュリティの観点からは、Off に設定することがおすすめです。

ServerSignature Off

3. ディレクトリのリスティングを禁止

ディレクトリにインデックスファイルがない場合、その内容が公開されてしまうことを防ぐために、以下の設定をおこないます。

Options -Indexes

4. SSL/TLS の使用

HTTPS を使用してデータの暗号化を行い、Man-in-the-Middle攻撃などからサイトを守ります。

Let’s Encryptのようなサービスを使用して無料のSSL証明書を取得することも可能です。

5. セキュアなHTTPヘッダーの追加

例えば、Header set ディレクティブを使用して、セキュリティヘッダーを追加できます。

パフォーマンス向上のための設定

パフォーマンス向上のための設定をご覧いただきます。

  1. コンテンツ圧縮 (mod_deflate)
  2. キャッシング (mod_expires と mod_headers)
  3. KeepAlive
  4. ワーカー数や接続数の調整

1.コンテンツ圧縮 (mod_deflate)

mod_deflate モジュールを使用して、テキストベースのコンテンツを圧縮することで、帯域幅の使用を減少させ、ページの読み込み時間を短縮します。

2. キャッシング (mod_expires と mod_headers)

静的コンテンツのキャッシュ設定を最適化して、ブラウザの再度のリクエストを減少させます。

  <FilesMatch ".(jpg|jpeg|png|gif|js|css)$">
    ExpiresActive On
    ExpiresDefault "access plus 1 year"
  </FilesMatch>

3. KeepAlive

KeepAlive を On に設定することで、複数のリクエストを同じコネクションで処理できるようになります。

4. ワーカー数や接続数の調整

MaxRequestWorkersMaxConnectionsPerChild などの設定を最適化することで、リソースの使用を最適化し、サーバーの応答性を向上させられます。

上記は一部の一般的なセキュリティ強化とパフォーマンス向上のための設定です。

サーバーの状態やニーズに応じて、適切な設定を行うことが重要です。

まとめ

当記事の内容をまとめます。

  • apacheの設定では、ドキュメントルートなどを確認・変更するところから始めよう
  • 複数のドメインで運用するならServerNameの設定が必須
  • 設定を目的ごとに分割することで、あとからの変更が容易になる

Apacheは設定により、さまざまなことが可能です。

Dockerなどを活用することで、お試しの環境を構築できます。

ぜひいろいろと触りながら、学んでみてください。

タイトルとURLをコピーしました