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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

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

Windows

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

Q&A

解決済

2回答

13773閲覧

apacheのServerNameとwindowsのhostsの関連

lupus_dingo

総合スコア257

Apache

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

Windows

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

0グッド

0クリップ

投稿2015/08/20 03:47

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

現状はとりあえずWebサーバーとして動いているようですが、今後不具合が出ないよう知っておきたいです。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

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/08/20 04:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lupus_dingo

2015/09/10 21:29

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

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/08/20 04:04

piotcard

総合スコア69

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lupus_dingo

2015/09/10 21:41

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問