Apache の設定方法 (sites-available と httpd.conf)

Apache の設定方法 (sites-available と httpd.conf)

私は、Apache を起動して実行する方法 (Ubuntu 上、Amazon 上で実行) を説明するいくつかの基本的なチュートリアルに従おうとしてきました。すべてのチュートリアルで httpd.conf を構成するように指示されていたため (DocumentRoot などを追加するため)、ほとんど何もわかりませんでした。

私は今、sites-available ディレクトリ (/etc/apache の下) にサイト設定を追加し、sites-enabled からそのディレクトリにシンボリックリンクを張るように指示するチュートリアルを 1 つ見つけました。この方法で設定するとうまくいくようです。

しかし、今私は混乱しています。Apache をどのように設定すればよいのでしょうか? ほとんどのチュートリアルでは、依然として httpd.conf を使用する必要があると述べられているようです。どれを使用すればよいのでしょうか? 違いは何でしょうか? すべてのチュートリアルが (もしそうなら)「間違っている」のはなぜでしょうか?

答え1

このsites-available方法は一般的に「Debian 方式」と考えられています。

  • 「メイン」設定/etc/apache2/apache2.conf
  • 「ユーザー」設定/etc/apache2/httpd.conf
  • ファイル内の vhosts /etc/apache2/sites-available(通常はファイルごとに 1 つ)
    • 番号を付けるとよいでしょう。例: 00-domain.com、01-otherdomain.com
  • ポート(Listenディレクティブ)/etc/apache2/ports.conf
  • モッド/etc/apache2/mods-available

これらは、シンボリックリンクまたはa2一連のコマンドを使用して操作できます。

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

個人の好みに応じて、、、またはを使用してApacheを再起動できますapachectl/etc/init.d/apache2 (start|stop|reload|restart)service apache2 (start|stop|reload|restart)

httpd.confたとえば、vhost エントリの代わりに を使用する例としては、グローバル リダイレクトまたは書き換えルールが挙げられます。その他の注意点としては、通常はapache2.confそのままにしておき、ディレクトリ内の vhost に一貫した命名スキームを設定するようにしてくださいsites-available

答え2

構成ファイルの場所と構成は構成可能であり、メジャー リリース間またはディストリビューション間で変更される可能性があります。

Apache Wikiには便利なガイド構成ファイルの名前と場所。

設定ファイルにはincludeディレクティブを含めることができるため、設定の一部を小さなファイルに分割することができます。標準の Apache 設定ファイルには多くのコメントと多くの標準項目が含まれているため、変更する可能性が最も高い部分を分割することは理にかなっています。

メイン設定ファイルの名前はコンパイル時に変更することができ、最近のリリースではhttpd.conf次のように変更されました。apache2.conf

長年にわたり、含まれる構成ファイルの構成にもいくつかの進化がありました。

たとえば、UbuntuベースのシステムにApache2をインストールしましたapt-get install apache2。ここに含まれたファイルがあります。

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

したがって、最も関心があると思われるいくつかの構成設定は現在 にあります/etc/apache2/sites-available/default

これはUbuntuと一致していることがわかりますApache のドキュメント最初にこれを読むことをお勧めします。Apache の古いバージョン (または他のディストリビューション) に関する他のドキュメントがある場合は、その情報を Ubuntu の構成に合わせて調整できます。

答え3

Linux の Apache は 2 つの方法でインストールできます。1 つは apt-get によるもので、もう 1 つは tar ファイルをダウンロードして抽出する方法です。したがって、apt-get プロセスでは、サイトは /etc/apache2/sites-enabled フォルダーから提供されます。外部に提供される各サイトは、これらのフォルダー内の .conf ファイルによって構成されます。たとえば、000-default.conf は、Apache が機能していることを示すために有効になっているデフォルトのサイトです。

したがって、サイト対応で任意の .conf ファイルを作成し、それをコンテンツの場所に向けることで、サイトが提供されます。

したがって、新しい静的サイトを追加するには、sites-enabled フォルダに、たとえば example.conf などの名前で新しい .conf ファイルを作成し、そこに以下の行を追加する必要があります。

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log 結合

*:80 は「ポート80を通じて世界に公開」を示し、DocumentRoot /var/www/html は「サイトコンテンツのパス」を示します。

関連情報