• ベストアンサー

バーチャルホスト (Apache2)

REDhatEL + Apache2でバーチャルホストを設定しようとしています。 RedHat7 + Apacheの時は、named.conf、zoneファイルの作成、httpd.confの設定でうまくいきましたが、今回はそれでは表示できませんでした。 何か他に設定が必要なのでしょうか?? http://domain/~vartualhost では表示できています。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

ありゃ~、困りましたねぇ・・ まずわからない言葉があったら、検索してみてください。現場のプロでもやっていることですから。 >/etc/hosts に何が記されていたら良いのか /etc/hosts ではありません。 最初の回答を見てください。ブラウザを使うクライアントPCのhostsファイルのことです。 普通ブラウザに「http://www.goo.ne.jp」などと打つと、DNSに訊きにいってIPアドレスを見つけるわけです。でもhostsファイルに 192.168.0.100  www.goo.ne.jp という行があったとすると、DNSに聞きにいく前にhostsファイルが参照されてブラウザはそのIPアドレスにアクセスするという動きをします。 ではなぜこんなことをするかというと、DNSに問題があった場合でもこれでとりあえずその問題点をスキップできるからです。つまりこれでアクセスできるならapacheに問題はないという仮説が立ち、問題点をDNSに絞り込めるということになります。 Windowsをお使いの場合、C:\WINDOWS\system32\drivers\etc の中にhosts というファイルがあるので、Notepadで開いて「127.0.0.1 localhost」の下に同じように追加してください。 IPアドレス  サーバ名 >named-checkconf この辺を参考にしてみてください。 http://www.atmarkit.co.jp/flinux/rensai/bind911/bind911b.html named.conf やゾーンファイルにミスがあると見つけてくれます。 >httpd.conf、named.conf、zoneファイルを設定し、named、httpdを再起動したら、バーチャルで使用するドキュメントルートにメインのアドレスが切り替わっていました。(困) apacheはメインのサイトと同じIPアドレスでバーチャルホストを作るとそちらの設定に上書きされてしまいます。(だったかな? うろ覚え) 設定ファイルを変更した後は、「apachectl configtest」で確認する癖を付けてください。おかしいところがあれば指摘してくれます。 追加質問があればまたどうぞ。

eiennotoki
質問者

お礼

回答ありがとうございました。 おっしゃるとおりわからない言葉があれば、検索をかけていたのですが、それでも意味がわからずかなり苦戦していました。 /etc/hostsではなく、ブラウザの方のhostsだったのですね。先のご回答にもそう書かれていたのをすっかり/etc/hostsと思い込んでいました。せっかく丁寧にパスまで書いていただいたのに申し訳ありませんでした。今回Windowsのhostsの機能を初めて知ることができました。 named-checkconf、apachectl configtestのようなチェック機能も初めて知りました。 lowrider_2005さんのご回答をもとに、httpd.conf、zoneファイルを一つ一つ見直したところ、うまくいきました。httpd.confではメインのホストをバーチャルホストの設定にしていなくて、NameVirtualHostの設定も違っていました。zoneファイルでは、メインホストのzoneファイルをもとに書き換えていただけでした。 ものすごく時間は掛かりましたが、一つ解決すると、とんとん拍子に解決していきました。 lowrider_2005さん、丁寧にご回答頂きありがとうございました。

その他の回答 (3)

回答No.3

whoisでDNSサーバがちゃんと登録されているがdigでIPアドレスが引けないということは、DNSサーバの設定に問題があるのでしょう。 hostsファイルに書いた場合の状況はでしたか? これで問題なければapache側はOKですが。 whoisで調べてもDNSの問題は見つけることは出来ません。 named-checkconfあたりで調べてみてはいかがでしょうか。

eiennotoki
質問者

お礼

回答ありがとうございました。 う~ん、lowrider_2005さんのおっしゃっていることが全然わかりません。(知識が無いので。。。) /etc/hosts に何が記されていたら良いのか、named-checkconfで調べると言ってもどこをどう調べるのかもよくわかっていません。 メインのアドレス(←バーチャルではない初期段階からある)をすでに運用しているので、なかなか思い切った設定ができずに困っています。 httpd.conf、named.conf、zoneファイルを設定し、named、httpdを再起動したら、バーチャルで使用するドキュメントルートにメインのアドレスが切り替わっていました。(困)

回答No.2

>> /home の下にVirtualHost/public_htmlのディレクトリ作成してますか? >はい。作成しています。でも表示できません。。。 別にそこに作る必要はありません。どこにあってもOKです。 >おそらくzoneファイルが原因かなと考えているのですが。。。 nslookupやdigでバーチャルホストのFQDNを引くとどうなりますか? ちゃんとサーバのIPアドレスが返されれば問題なしです。返されなければDNSサーバ周りに問題ありかも。 とりあえずhostsファイルに書いてみればDNS問題は避けて通れますので試す価値ありです。 Windowsの場合、hostsファイルの場所は「C:\WINDOWS\system32\drivers\etc\hosts」にあります。書き方はファイルの中を参照してください。 また「今回はそれでは表示できませんでした。」とのことですが、ブラウザ上のエラーはどんなでしょうか? apacheのアクセスログ及びエラーログには何か出てきませんか?

eiennotoki
質問者

お礼

回答ありがとうございました。 digコマンドを使用してみると、IPアドレスかえってきませんでした。 DNSの問題かと思いましたが、whoisで調べてみるときちんと設定されていることが確認できています。 これはどういうことでしょうか?? もしお分かりでしたら、教えていただけると幸いです。

回答No.1

>named.conf、zoneファイルの作成、httpd.confの設定でうまくいきましたが~ ネームベースのVirtualHostなら、それだけでOKなはず。 (IPベースならネットワークの設定も必要) httpd.confの設定はどうなってますか? >http://domain/~vartualhost では表示できています。 これはおそらくmod_userdirの機能ですよね? /home の下にVirtualHost/public_htmlのディレクトリ作成してますか?

eiennotoki
質問者

お礼

回答ありがとうございました。 httpd.confの設定は、ドメイン名、IPアドレスなどは変更していますが、うまくできていたApacheのものと同じです。 > /home の下にVirtualHost/public_htmlのディレクトリ作成してますか? はい。作成しています。でも表示できません。。。 おそらくzoneファイルが原因かなと考えているのですが。。。

関連するQ&A

  • apacheのバーチャルホストの設定方法

    MacOSX Snow Leopardを使っています。 apacheは2.2.11です。 httpd.confで/http/Virtual.confを読み出して設定しています。 Virtual.conf ------- # #VirtualHost.conf # NameVirtualHost *:80 <VirtualHost *:80> ServerName www.xxxxx.com DocumentRoot /http/www.xxxxx.com </VirtualHost> ------- ※www.xxxxx.comは、正しく設定されています。 の設定をし、httpdを再起動したところ、IPアドレスでアクセスしても、ドメインでアクセスしても、httpコード403になってしまいます。 *httpdで起動時、エラーはでません。 *httpd -tはSyntaxOK *httpd -sは   VirtualHost configuration:   wildcard NameVirtualHosts and _default_ servers:   *:80 is a NameVirtualHost    default server www.xxxxx.com (/http/Virtual.conf:11)    port 80 namevhost www.xxxxx.com (/http/Virtual.conf:11)   Syntax OK です。 virtual.confをすべてコメントアウトしたところしっかりアクセスできました。 よろしくお願いします。

  • Apacheのバーチャルホストの設定について

    OS:Scientific Linux6.2 Apache/2.2.15 Apacheのバーチャルホストの設定について現在勉強しております。 参考にしたサイト:http://scientificsrv.com/apache-virtualhost.shtml 私が今悩んでいるのが、DocumentRootになります。 2つのサイトを以下のディレクトリーに入れています。 ドメイン ディレクトリ aaa.com /home/aaa/html bbb.com /home/bbb/html ここで、参考にしたサイトを元にしますと /etc/httpd/conf.d/virtualhost-aaa.conf ← メインホスト用バーチャルホスト設定ファイル作成 <VirtualHost *:80> ServerName aaa.com DocumentRoot /home/aaa/html </VirtualHost> /etc/httpd/conf.d/virtualhost-bbb.conf ← 追加ホスト用バーチャルホスト設定ファイル作成 <VirtualHost *:80> ServerName bbb.com DocumentRoot /home/bbb/html ErrorLog logs/virtual-error_log CustomLog logs/virtual-access_log combined env=!no_log </VirtualHost> と言うようになります。 ここで、DocumentRootはそれぞれ設定していることになります。 そうするとApacheの設定ファイルのDocumentRootはどのように設定したらいいのでしょうか? デフォルトでは以下のようになっています。 /etc/httpd/conf/httpd.conf  # DocumentRoot: The directory out of which you will serve your # documents. By default, all requests are taken from this directory, but # symbolic links and aliases may be used to point to other locations. # DocumentRoot "/var/www/html" # # This should be changed to whatever you set DocumentRoot to. # <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory> このファイルの設定方法が分かりません。デフォルトのままでは、/var/www/htmlを使用することになっています。バーチャルホストの方で設定しているのでここの設定はしなくていいのでしょうか? また、 # This should be changed to whatever you set DocumentRoot to. # <Directory "/var/www/html"> では、htaccessやCGIの許可の設定などを行いますが、バーチャルホストの場合どこで設定すればいいのでしょうか? 勉強不足なのは重々承知していますが、何卒よろしくお願い致します。

  • バーチャルホスト設定

    何度も投稿して申し訳ありません(汗) ここしか聞くところがなくてorz バーチャルホストの設定ですが Apacheが正常にインストールをしていていると想定して vi /etc/httpd/conf/httpd.conf の下のところにあるバーチャルホストの設定のコメントを外すと 403となってApacheの画面が見れていた localhostも見えなくなってしまします。 何か間違いがあるのでしょうか?ちなみに外したのは #NameVirtualHost *:80 ↓ NameVirtualHost *:80 #<VirtualHost *:80> # ServerAdmin webmaster@”ドメイン名” # DocumentRoot /home/ftpmaster/localhost/”ドメイン名” # ServerName ”ドメイン名” # ErrorLog logs/error_log #</VirtualHost> ↓ <VirtualHost *:80> ServerAdmin webmaster@”ドメイン名” DocumentRoot /home/ftpmaster/localhost/”ドメイン名” ServerName ”ドメイン名” ErrorLog logs/error_log </VirtualHost> です。 他に設定などがあるようでしたらご指摘していただけると嬉しいです。 使用OS→CentOS5i386

  • apacheでバーチャルホストを確認する

    http://www.yunayuna.net/server/apache2virtual.html ここの通りにバーチャルホストを立てたら、 そのwwwの中のhtmlファイルを見るにはどうしたら 良いでしょうか。  http://www.yunayuna.net/server/apache2settei.html ここでの設定はできました。localhostと打ったら指定のhtml が表示されました。バーチャルホストの設定をした場合 、この初期設定はデフォルトに戻すべきでしょうか?

  • Debianの Apache2 VirtualHostの設定方法 RedHat系と違う?

    DebianのApache2を使い、バーチャルホストの設定を行いたいのですが、何か良い見本があれば教えていただけますか? RedHat系では httpd.confにすべて記述していたのでうすが、debianは設定ファイルが色々と分かれているようです。/etc/apache2/site-available/defaltに<VirtualHost>の設定を行うのですが、RedHat系の物をそのまま書き写して、 /etc/init.d/apache startとしても、起動しません。 デビアンのバーチャルホストの設定で参考になるものがございましたら教えてください。

  • apacheのバーチャルホストの設定について

    XAMPPを一通りインストールして、apacheでバーチャルホストの設定を行っております。 環境:Windows2003server ApacheFriends XAMPP (Basispaket) version 1.7.1 + Apache 2.2.11 固定のグローバルIPアドレスは1つ持っており、仮に111.222.333.444としておきます。 バーチャルホストのドメイン名は2つ設定したいと思っており、 aaa.hogehoge.net bbb.hogehoge.net 他業者のDNSにて111.222.333.444をAレコードの値として、それぞれ割り当てしました。 ちなみに、hogehoge.netのAレコードは別のサーバーを当てています。 そこで、携帯から直接 http://aaa.hogehoge.netとhttp://bbb.hogehoge.net をアクセスしましたら、自社サーバーのC:/xampp/htdocs/にあるindex.htmが表示されました。 一応、名前解決は成功したとして、、、 念のため、Windowsのhostsに 111.222.333.444  aaa.hogehoge.net  bbb.hogehoge.net を追加しました。 apacheのメイン設定-httpd.conf ------------------------------ ServerRoot "C:/xampp/apache" Listen 80 ServerAdmin admin@localhost ServerName localhost:80 DocumentRoot "C:/xampp/htdocs/" ↓バーチャルホストのファイルをインクルード Include conf/extra/httpd-vhosts.conf ----以下、httpd-vhosts.confの中身 ホスト名を2つ設定 NameVirtualHost 111.222.333.444:80 <VirtualHost 111.222.333.444:80> ServerAdmin admin@aaa.hogehoge.net DocumentRoot C:/xampp/htdocs/aaa.hogehoge.net ServerName aaa.hogehoge.net ServerAlias www.aaa.hogehoge.net <Directory "C:/xampp/htdocs/aaa.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 111.222.333.444:80> ServerAdmin admin@bbb.hogehoge.net DocumentRoot C:/xampp/htdocs/bbb.hogehoge.net ServerName bbb.hogehoge.net ServerAlias www.bbb.hogehoge.net <Directory "C:/xampp/htdocs/bbb.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> 設定後、apacheを再起動して、再度携帯電話からhttp://aaa.hogehoge.netとhttp://bbb.hogehoge.netにアクセスしたのですが、C:/xampp/htdocs/にあるindex.htmが表示されてしまい、C:/xampp/htdocs/aaa.hogehoge.net/index.htm、C:/xampp/htdocs/aaa.hogehoge.net/index.htmが表示されません。それぞれのパーミッション自体は766になっているので、こちらは違うと思うのですが、バーチャルホストの設定が悪いのか何処が悪いのか、何か設定が悪いのか全くわからなくなりました。参考書のマニュアルを見ると、「バーチャルホストを設定すると、メインホストの設定が無効になる」と書いてあったので、それでもメインのホストが表示されてしまうということは、バーチャルホストの設定に問題があるのだと自分なりに察知しております。 どなたか、考えられる原因や心当たりある事がございましたら、ご教授をお願いします。

  • Apacheで各バーチャルホストとは別に全体のアクセスログをとりたい

    Apache2使用です。 大量のバーチャルホストを運営しており、 各バーチャルホストごとにアクセスログを記録しています。 しかし、DOS攻撃等があった場合にどのホストにアタックされているのか 調べるために見当をつけて各ファイルを見ていかなければいけないため、 各バーチャルホストとは別に、サーバ全体のアクセスログをとりたいです。 しかし、httpd.confのCustomLogの説明文には、 バーチャルホストの設定部分にログ設定があったら CustomLog logs/access_log common には記録されないと書かれています。 各バーチャルホストとは別に、全体のログを記録する方法を教えてください。 よろしくお願いします。

  • Apacheについて

    お詳しい方、レス頂けましたら幸いです。 Apache1.3を勉強目的?で色々やっております。 httpd.conf にて、 ErrorDocument 404 /404.html ・・・などとして、 オリジナルのエラー画面を出そうと思っているのですが、、、 ・・・そこまでは良いのですが、、、 例えばバーチャルホストで10個くらい?別ドメインを 動かしている時、10個それぞれのドキュメントルートに、 404.htmlなどを置かないと、その404.htmlが表示出来ません。 そもそも、それは絶対にそういうものなのか? それとも、httpd.confの設定で、一箇所に設置すれば、 10個のドメイン分の404を全て返せるのか?が分かりません。 ・・・多分出来るのだろうと思いますが、やり方がわかりません。 10箇所にそれぞれ置けば良いのかも知れませんが、なんだか スマートじゃないので、一箇所で管理したいな・・・と 思った次第でございます。 レス頂けましたら幸いです。

  • CentOS5のバーチャルホスト

    CentOS5においてバーチャルホストの設定をおこなうために、httpd.confの設定を変更しhttpdを再起動するときに Starting httpd: [warn] NameVirtualHost *:80 has no VirtualHosts という表示がされます。 原因として考えられることとして、バーチャルホストのディレクトリルートを変更したことだと考えられます。しかし、原因と思われることはわかるのですが、いろいろなサイトを調べてみても一向に解決できません。 最後の綱と思い、ここに質問を書き込みました。どなたか教えてはいただけないでしょうか?

  • apache バーチャルホスト

    “名前ベースのバーチャルホストを利用する” http://httpd.apache.org/docs/2.2/ja/vhosts/name-based.html#using に付いて、質問をさせてください。中ほどの行にある; 『たとえば、www.domain.tld を動かしていて、 さらにバーチャルホスト www.otherdomain.tld を追加するとしましょう。』 が今一理解できません。 たとえば登録済みのドメイン名が上記のようにdomain.tldとして、実際にウェブサイトをwww.domain.tld で運用していると仮定します。 www.sub.domain.tldをバーチャルホストとして使用できることは分かりますが、この追加するバーチャルホストの“www. otherdomain.tld”とは実際に何を示すのか教えていただきたいのです。 このドメイン名とは www.domain.tldと別に新たにwww.otherdomain.tldを登録して取得をした正式なドメイン名を示すのか、もしくは、バーチャルホストであるため他の人が登録をしていないドメイン名であればバーチャルとして使用して構わないと言うことなのかです。 前者であろうと推測しますがそれではバーチャルとは言わないのではとも考えています。 お願いします。