Apacheの構成方法(sites-available vs httpd.conf)


27

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

/ etc / apacheの下のsites-availableディレクトリにサイト構成を追加し、sites-enabledからそれへのシンボリックリンクを追加するように言った1つのチュートリアルに出くわしました。このように設定するとうまくいくようです。

しかし、今私は混乱しています-どのようにApacheを設定するのですか?ほとんどのチュートリアルでは、httpd.confを使用する必要があると言われているようです。どちらを使用すべきですか?違いは何ですか?すべてのチュートリアルが「間違っている」のはなぜですか?

回答:


35

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

  • 「メイン」設定 /etc/apache2/apache2.conf
  • 「ユーザー」設定 /etc/apache2/httpd.conf
  • /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は、そのままにして、sites-availableディレクトリ内の仮想ホストに一貫した命名スキームを設定する必要があります。


素晴らしいまとめ!私が取り組んでいたものよりもはるかに明確で簡潔。+1。
スティーブン

2
利用可能なサイトは、構成の適切なモジュール化を提供します。これにより、単一サイトの構成に簡単に集中できます。また、サーバー上のサイトを比較したり、サーバー間でサイトを移動または複製したりするのがはるかに簡単になります。
BillThor

+1。これらの構成を維持する必要がある場合は、「sites-available」ではなく「sites-enabled」に移動し、そこから直接アクセスします。この方法により、現在使用されているサイト構成を常に判別してアクセスできます。
ロス

9

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

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ます。

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


-2

LinuxのApacheは、2つのタイプでインストールできます。1つはapt-getおよびその他のtarファイルをダウンロードして抽出する...です。したがって、apt-getプロセスでは、サイトは/ etc / apache2 / sites-enabledフォルダーから提供されます。 .confファイルの例000-default.confは、Apacheの動作を表示できるデフォルトのサイトです。

したがって、.confファイルをサイト対応で作成し、コンテンツの場所にリダイレクトすることにより、..したがってサイトが提供されます。

そのため、新しい静的サイトを追加するには、examples.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は「サイトコンテンツのパス」を示します


これは間違っていて誤解を招く。a2ensiteなどのツール(推奨)が機能するように、利用可能なサイトでファイルを作成します。通常、a2ensiteを使用してこれらのconfファイルをシンボリックリンクして、サイトを有効にします。apt-getは、サイトの構成とは何の関係もありません。
HörmannHH
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.