Apacheの基本:インストールと構成のトラブルシューティング

提供:Dev Guides
移動先:案内検索

###序章

Apache Webサーバーは、その柔軟性、パワー、および広範なサポートで人気のあるオープンソースWebサーバーです。 このガイドでは、サービスの停止、開始、有効化、仮想ホストファイルとディレクトリの操作、サーバー上の重要なファイルとディレクトリの検索など、Apacheサーバーを管理するための一般的な手順について説明します。

このガイドは、UbuntuでApacheを使用しているユーザーを対象としています。 CentOSおよびその他のRHELベースのディストリビューションで作業しているユーザーは、CentOSへのApacheのインストールについて、このチュートリアルのセクション1を確認できます。

このガイドの使用方法:

  • 各セクションは他のセクションとは独立して使用できるため、ニーズに関連するセクションにスキップしてください。
  • 各コマンドは自己完結型であるため、赤の値を独自の値に置き換えることができます。
  • 各セクションにはリンクされたリソースがあり、カバーされているトピックの詳細について参照できます。
    1. Apacheサービスのインストール

Apacheサービスをインストールするには、パッケージインデックスを更新してから、次のものをインストールします。

sudo apt-get update
sudo apt-get install apache2

インストールプロセスの詳細については、 Ubuntu16.04にApacheWebサーバーをインストールする方法に関するチュートリアルに従ってください。

    1. Apacheユニットの有効化と無効化

Apacheサービスは、起動時に自動的に開始するように構成されています。 ただし、この動作を変更する場合は、次のように入力できます。

sudo systemctl disable apache2.service

起動時にApacheを再起動できるようにするには:

sudo systemctl enable apache2.service
    1. Apacheの停止、起動、および再ロード

Apacheサーバーを停止するには、次のコマンドを入力します。

sudo systemctl stop apache2

Apacheサーバーを起動するには、次のように入力します。

sudo systemctl start apache2

サービスを停止して再開するには、次のように入力します。

sudo systemctl restart apache2

構成を変更する場合は、接続を切断せずにApacheをリロードできます。 次のコマンドを入力します。

sudo systemctl reload apache2

systemdinitシステムとsystemctlコマンドの詳細については、この systemdEssentialsの概要を確認してください。

    1. サーバーステータスの確認

Apacheサーバーのステータスを確認するには、次のように入力します。

sudo systemctl status apache2

このコマンドの出力には、Apacheが実行されているかどうかが示され、ログファイルの最後の数行が表示されます。

    1. 静的Webサイトのドキュメントルートディレクトリの作成

Apacheを使用してWebサイトを構築する場合、開発者はvirtual hosts(個々のサイトまたはドメインを構成するユニット)を頻繁に使用します。 このプロセスには、document rootのディレクトリの作成が含まれます。これは、Apacheがコンテンツを提供するときにチェックする最上位のディレクトリです。

ディレクトリを作成します。

sudo mkdir -p /var/www/example.com/public_html

ディレクトリの所有権をroot以外のユーザーに割り当てます。

sudo chown -R $USER:$USER /var/www/example.com/public_html

一般的なWebディレクトリへの読み取りアクセスを許可します。

sudo find /var/www -type d -exec chmod 775 {} \;

パーミッションの詳細については、Linuxパーミッションの概要を参照してください。 権限は、ニーズやユースケースによって変わる可能性があることに注意してください。

    1. 動的処理モジュールのドキュメントルートディレクトリの作成

PHPなどの動的処理モジュールを使用している場合は、次のようにドキュメントのルートディレクトリを作成します。

sudo mkdir -p /var/www/example.com/public_html

ディレクトリの所有権をroot以外のユーザーに割り当て、グループの所有権をwww-dataグループに割り当てます。

sudo chown -R sammy:www-data /var/www/example.com/public_html
    1. 構成設定の変更

仮想ホストを使用する場合、Apacheがドメイン要求に正しく応答できるように、ドメインの詳細を反映するように構成設定を変更する必要があります。

仮想ホスト構成ファイルを開きます。

sudo nano /etc/apache2/sites-available/example.com.conf

以下を変更します。

ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html

変更を加えると、ファイルは次のようになります(以前に変更されていない場合)。

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/public_html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

トラブルシューティングを行うときは、このファイルとそのディレクティブを再確認してください。

仮想ホストの操作の詳細については、 Ubuntu16.04でのApache仮想ホストの操作に関する説明を参照してください。

    1. 構成ファイルの有効化と無効化
      1. 仮想ホストファイル

仮想ホスト構成ファイルを有効にするには:

sudo a2ensite example.com.conf

設定ファイル(この特定の例では、Apacheのデフォルトの仮想ホスト設定ファイル)を無効にするには:

sudo a2dissite 000-default.conf
      1. モジュール

/etc/apache2/mods-availableにあるモジュールを有効にするには、次のコマンドを使用します。

sudo a2enmod example_mod

特定のモジュールを無効にするには:

sudo a2dismod example_mod
      1. 構成ファイル

/etc/apache2/conf-availableの構成ファイル(仮想ホストに関連付けられていないファイル)を有効にするには、次のように入力します。

sudo a2enconf example-conf

構成ファイルを無効にするには:

sudo a2disconf example-conf
    1. 構成テスト

Apacheで構成ファイルを変更するときは、必ず次のコマンドを実行して構文エラーをチェックしてください。

sudo apache2ctl configtest
    1. 重要なファイルとディレクトリ

Apacheで作業を続けると、次のディレクトリとファイルが表示されます。

###コンテンツ

  • /var/www/html:このディレクトリは、サイトのWebコンテンツを保持し、デフォルトのルートです。 Apacheのデフォルト構成設定を変更して、var/www内の他のディレクトリを指すようにすることができます。
      1. サーバー構成
  • /etc/apache2:すべての構成ファイルのホームであるApacheの構成ディレクトリ。
  • /etc/apache2/apache2.conf:グローバル構成設定を保存するApacheのプライマリ構成ファイル。 構成ディレクトリ内の他のファイルは、このファイルからロードされます。 また、構成の有効化と無効化を制御するFollowSymLinksディレクティブも格納します。
  • /etc/apache2/sites-available/:このディレクトリには、sites-enabledディレクトリへのリンクを介して有効化される仮想ホスト構成ファイルが保持されます。 サーバーブロックファイルへの変更はこのディレクトリで行われ、a2ensiteコマンドで有効になります。
  • /etc/apache2/sites-enabled/:アクティブ化された仮想ホスト構成ファイルがここに保存されます。 Apacheが起動またはリロードすると、完全な設定に準拠するため、このディレクトリ内の設定ファイルとリンクが読み取られます。
  • /etc/apache2/conf-availableおよび/etc/apache2/conf-enabledsites-availableおよびsites-enabledと同じ関係で、これらのディレクトリには、仮想ホスト構成ファイルに接続されていない構成フラグメントが格納されます。
  • /etc/apache2/mods-availableおよび/etc/apache2/mods-enabled:使用可能で有効なモジュールを含むこれらのディレクトリには、.loadで終わるファイル(特定のモジュールをロードするフラグメントを含む)と、で終わるファイルの2つのコンポーネントがあります。 .conf、これらのモジュールの構成を保存します。
      1. サーバーログ
  • /var/log/apache2/access.log:このファイルには、Apacheの構成設定が変更されていない限り、Webサーバーへのすべてのリクエストが含まれています。
  • /var/log/apache2/error.log:このファイルにはエラーが含まれています。 エラーログの詳細量を変更するには、/etc/apache2/apache2.confLogLevelディレクティブを変更します。

Apacheユニットに関する情報にアクセスする別の方法は、journaldコンポーネントを使用することです。このコンポーネントは、アプリケーションとカーネルからログ情報を収集します。 Apacheユニットのエントリを表示するには、次のように入力します。

sudo journalctl -u apache2

##結論

このガイドでは、サービスの停止、開始、有効化、仮想ホストファイルとディレクトリの操作、サーバー上の重要なファイルとディレクトリの検索など、Apacheサーバーを管理するための一般的な手順について説明しました。 Apacheの操作の詳細については、次のリソースを参照してください。