質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • Apache

    1855questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • Windows

    1492questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

apacheのServerNameとwindowsのhostsの関連

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 3,980

lupus_dingo

score 254

ローカル環境windows7にWebサーバーを立てようと思っています。
その際、hostsファイルやapacheのconfファイルを設定しますが、ここに何を設定すべきなのかよくわかってません。
例えば、
ServerNameとhostsは一致させるのか?
ServerNameとDocumentRootはhttpd.conf、httpd-ssl.conf、httpd-vhosts.confに設定項目があるが、全て一致させるのか?
VirtualHostのipアドレスは127.0.0.1以外を使うべきなのか?
などです。

現状はとりあえずWebサーバーとして動いているようですが、今後不具合が出ないよう知っておきたいです。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

hostsファイルはそのマシンから接続するときの名前解決に使うファイルです。通常はDNSを使ってホスト名からIPアドレスに変換して接続しますが、hostsファイルに定義されていればhostsファイルに書いている内容が優先されます。例えば

127.0.0.1 www.yahoo.co.jp

とhostsに書くとブラウザでwww.yahoo.co.jpを開いた時、ローカルのApacheの画面が開きます。

Apacheの方のServerNameは、そのサーバーのホスト名かIPアドレスを定義します。
Apacheの処理でホスト名が必要になった時、ServerNameに書いてある設定を利用します。
詳しくは下記サイトを見てみてください。

参考: ApacheによるWebサーバ構築(5)絶対外せない基本設定とサーバの動作 

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/11 06:29

    回答ありがとうございます。
    hostsはdnsより優先して名前解決を行なうための仕組みで、
    apacheのservernameはapacheの処理中でホスト名が必要になったときに使用される名前のことなんですね。
    ちょっとわかった気がします。

    キャンセル

0

ServerNameディレクティブはApacheサーバが自分自身のホスト名を示す時に使われる名前を指定します。例えばApacheがエラー表示をする場合に、自分自身を表すホスト名も合わせて表示する時などにここで設定したホスト名が使われます。

通常はIPアドレスに対して割り当てられているホスト名になりますが、別名などを割り当てていてそちらを正式なホスト名としたい場合に使います。「ServerName」が指定されていない場合はApacheに割り当てられているIPアドレスを逆引きしてホスト名を取得します。

書式は次の通りです。

ServerName ホスト名[:ポート番号]
「ServerName」の指定は「ホスト名:ポート番号」の形式で指定します。

それでは「httpd.conf」ファイルで「ServerName」を検索してみてください。160行目付近に次の記述が見つかります。

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName localhost:80
※デフォルトでは先頭に「#」が付いているためコメントとなっていました。以前はそうではなかったのですが取り合えずそのままにしてあります。

今回はApacheをローカル環境で動かしているので上記のようになっていますが、外部に公開されるWebサーバの場合は例えば「www.example.com」などのように指定することになるかと思います。

ServerName www.example.com:80
ポート番号は省略可能ですが、省略された場合はリクエストのポート番号を使われます。ポート番号も指定しておくことが推奨されています。

リクエストを受け付けるポート番号
ListenディレクティブはApacheが外部からリクエストを受け付けるポート番号を指定します。書式は次の通りです。

Listen [IPアドレス:]ポート番号 [プロトコル]
それでは「httpd.conf」ファイルで「Listen」で検索してみてください。40行目付近に次の記述が見つかります。

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80
リクエストを受け付けるポート番号として80番が指定されていることが確認できます。

受け付けることができるポート番号は1つだけではありません。複数のポート番号を受け付ける場合はListenディレクティブを複数記述して下さい。下記の場合は「80」番ポートと、「8080」番ポートでのリクエストを受け付けるようになります。

Listen 80
Listen 8080
ポート番号だけを指定した場合には、全てのインターフェースから指定したポート番号のリクエストを受け付けます。Apacheが稼動しているサーバに複数のインターフェースが接続されていて特定のインターフェースからのみリクエストを受け付けたいのであれば、そのインターフェースのIPアドレスを指定して下さい。

Listen 192.168.128.1:80
プロトコルに関してはポート番号443番を使う場合にはhttpsが、それ以外のポート番号の場合はhttpがデフォルトで設定されます。もし443番以外のポート番号を受け付ける場合でhttpsを使用した場合などに指定して下さい。
参考になれば幸いです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/11 06:41

    回答ありがとうございます。
    servernameはapacheの中でホスト名が必要なときに使用されることはわかりました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Apache

    1855questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • Windows

    1492questions

    Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。