Apacheの基本:インストールと構成のトラブルシューティング
###序章
Apache Webサーバーは、その柔軟性、パワー、および広範なサポートで人気のあるオープンソースWebサーバーです。 このガイドでは、サービスの停止、開始、有効化、仮想ホストファイルとディレクトリの操作、サーバー上の重要なファイルとディレクトリの検索など、Apacheサーバーを管理するための一般的な手順について説明します。
このガイドは、UbuntuでApacheを使用しているユーザーを対象としています。 CentOSおよびその他のRHELベースのディストリビューションで作業しているユーザーは、CentOSへのApacheのインストールについて、このチュートリアルのセクション1を確認できます。
このガイドの使用方法:
- 各セクションは他のセクションとは独立して使用できるため、ニーズに関連するセクションにスキップしてください。
- 各コマンドは自己完結型であるため、赤の値を独自の値に置き換えることができます。
- 各セクションにはリンクされたリソースがあり、カバーされているトピックの詳細について参照できます。
- Apacheサービスのインストール
Apacheサービスをインストールするには、パッケージインデックスを更新してから、次のものをインストールします。
sudo apt-get update sudo apt-get install apache2
インストールプロセスの詳細については、 Ubuntu16.04にApacheWebサーバーをインストールする方法に関するチュートリアルに従ってください。
- Apacheユニットの有効化と無効化
Apacheサービスは、起動時に自動的に開始するように構成されています。 ただし、この動作を変更する場合は、次のように入力できます。
sudo systemctl disable apache2.service
起動時にApacheを再起動できるようにするには:
sudo systemctl enable apache2.service
- Apacheの停止、起動、および再ロード
Apacheサーバーを停止するには、次のコマンドを入力します。
sudo systemctl stop apache2
Apacheサーバーを起動するには、次のように入力します。
sudo systemctl start apache2
サービスを停止して再開するには、次のように入力します。
sudo systemctl restart apache2
構成を変更する場合は、接続を切断せずにApacheをリロードできます。 次のコマンドを入力します。
sudo systemctl reload apache2
systemd
initシステムとsystemctl
コマンドの詳細については、この systemdEssentialsの概要を確認してください。
- サーバーステータスの確認
Apacheサーバーのステータスを確認するには、次のように入力します。
sudo systemctl status apache2
このコマンドの出力には、Apacheが実行されているかどうかが示され、ログファイルの最後の数行が表示されます。
- 静的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パーミッションの概要を参照してください。 権限は、ニーズやユースケースによって変わる可能性があることに注意してください。
- 動的処理モジュールのドキュメントルートディレクトリの作成
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
- 構成設定の変更
仮想ホストを使用する場合、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仮想ホストの操作に関する説明を参照してください。
- 構成ファイルの有効化と無効化
- 仮想ホストファイル
仮想ホスト構成ファイルを有効にするには:
sudo a2ensite example.com.conf
設定ファイル(この特定の例では、Apacheのデフォルトの仮想ホスト設定ファイル)を無効にするには:
sudo a2dissite 000-default.conf
- モジュール
/etc/apache2/mods-available
にあるモジュールを有効にするには、次のコマンドを使用します。
sudo a2enmod example_mod
特定のモジュールを無効にするには:
sudo a2dismod example_mod
- 構成ファイル
/etc/apache2/conf-available
の構成ファイル(仮想ホストに関連付けられていないファイル)を有効にするには、次のように入力します。
sudo a2enconf example-conf
構成ファイルを無効にするには:
sudo a2disconf example-conf
- 構成テスト
Apacheで構成ファイルを変更するときは、必ず次のコマンドを実行して構文エラーをチェックしてください。
sudo apache2ctl configtest
- 重要なファイルとディレクトリ
Apacheで作業を続けると、次のディレクトリとファイルが表示されます。
###コンテンツ
/var/www/html
:このディレクトリは、サイトのWebコンテンツを保持し、デフォルトのルートです。 Apacheのデフォルト構成設定を変更して、var/www
内の他のディレクトリを指すようにすることができます。
- サーバー構成
/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-enabled
:sites-available
およびsites-enabled
と同じ関係で、これらのディレクトリには、仮想ホスト構成ファイルに接続されていない構成フラグメントが格納されます。/etc/apache2/mods-available
および/etc/apache2/mods-enabled
:使用可能で有効なモジュールを含むこれらのディレクトリには、.load
で終わるファイル(特定のモジュールをロードするフラグメントを含む)と、で終わるファイルの2つのコンポーネントがあります。.conf
、これらのモジュールの構成を保存します。
- サーバーログ
/var/log/apache2/access.log
:このファイルには、Apacheの構成設定が変更されていない限り、Webサーバーへのすべてのリクエストが含まれています。/var/log/apache2/error.log
:このファイルにはエラーが含まれています。 エラーログの詳細量を変更するには、/etc/apache2/apache2.conf
のLogLevel
ディレクティブを変更します。
Apacheユニットに関する情報にアクセスする別の方法は、journald
コンポーネントを使用することです。このコンポーネントは、アプリケーションとカーネルからログ情報を収集します。 Apacheユニットのエントリを表示するには、次のように入力します。
sudo journalctl -u apache2
##結論
このガイドでは、サービスの停止、開始、有効化、仮想ホストファイルとディレクトリの操作、サーバー上の重要なファイルとディレクトリの検索など、Apacheサーバーを管理するための一般的な手順について説明しました。 Apacheの操作の詳細については、次のリソースを参照してください。
- Ubuntu16.04にLAMPスタックをインストールする方法。
- Ubuntu16.04でApacheWebルートを新しい場所に移動する方法。
- Ubuntu16.04でLet'sEncryptを使用してApacheを保護する方法。
- .htaccessファイルの使用方法。
- Ubuntu16.04でApacheのmod_rewriteを使用してURLを書き換える方法。
- Ubuntu16.04でmod_proxyを使用してApacheをリバースプロキシとして使用する方法。