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
変更を加えると、ファイルは次のようになります(以前に変更されていない場合)。
<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
:使用可能で有効になっているモジュールを含むこれらのディレクトリには、次の2つのコンポーネントがあります。.load
、特定のモジュールをロードするフラグメント、およびで終わるファイルが含まれています.conf
、これらのモジュールの構成を格納します。
###サーバーログ
-
/var/log/apache2/access.log
:このファイルには、Apacheの構成設定が変更されていない限り、Webサーバーへのすべてのリクエストが含まれています。 -
/var/log/apache2/error.log
:このファイルにはエラーが含まれています。 エラーログの詳細量を変更するには、LogLevel
のディレクティブ/etc/apache2/apache2.conf
.
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をリバースプロキシとして使用する方法。