社内ローカルサーバーをWin XPのあまったPCで構築中です。

xamppインストールしたくらいですが、社内の全PCはネットワークでつながっているので、
ローカルサーバー用のマシンにXAMPPインストして、そのマシンのIPたたけば接続はできました。
後はもろもろセキュリティの関係を調整したくらいです

192.●●.1.●●
これが仮にそのマシンのIPだとして、
http://192.●●.1.●●/
とすれば、ルートディレクトリが見れます。

この中にどんどんサイトを作ろうとするとhttp://192.●●.1.●●/test
と毎回ディレクトリを作らねばならず
http://test.net とかでも見れるようにしたいんです

http://blog.zamuu.net/2010/0410/xampp-virtualhost/
このURLを参考に

C:\WINDOWS\system32\drivers\etc\hosts
この一文を追加
127.0.0.1 test.net

ローカルサーバー用のPCでhttp://test.net とURLたたけばhtdocs\testの中身が見れますが、
ネットワークでつながっているほかのマシンからhttp://test.net
とたたいても見ることはできません。
192.●●.1.●● test.net
とやったくらいじゃだめでした。
どうしたらほかのPCでも
test.netでアクセスすることができるでしょうか??
ちなみにxampp1.7.2です。

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2011/01/14 13:27:48
  • 終了:2011/01/21 13:30:02

回答(4件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492011/01/14 15:14:43

ポイント23pt

【1】1台のPCで複数のドメイン名を持たせる方法

apacheのVirtualHostという機能を使って1台のPCで複数のWEBサーバーがあるように見せかけることが出来ます

 

【2】ネームベース

VirtualHostはレンタルサーバーなどでも使われている機能で、1台のPCにhttp://example.netやhttp://example.jpなどの複数のドメインを持たせることが可能です

http://httpd.apache.org/docs/2.2/ja/vhosts/

簡潔に書いてあるページを探してみました

「apache VirtualHost」「apache バーチャルホスト」「apache 名前ベース」「apache ネームベース」などで検索するともっともっと出てきますので複数のサイトを見て比較してみるとわかりやすいでしょう

http://naitu.com/pc_settei/apache/apache_settei.html

 

【3】サーバーでネームベースを設定しただけではドメイン名でのアクセスは実はできない

192.といったローカルなIPアドレスについてはルータが遮断してくれますが、ドメイン名でのアクセスにしてしまうとルータに設定された外部のDNSにも毎回検索に行ってしまうため、ネームベースを使う場合には社内に独自のDNSサーバーを準備しておかないと面倒なことになります

 

【4】ドメイン名では無理でもポートを使えば問題無い

独自でDNSサーバーの類を用意するのは面倒ですが、ネームベースの実態はポートを分けているだけなのでVirtualHostで設定したポートを使えば、お望みの結果(ディレクトリではなくドメイントップからの動作テストが可能な環境の構築)と等価となります

http://192.●●.1.●●:80/ 社内用

http://192.●●.1.●●:8080/ xx社のホームページ開発テスト環境

http://192.●●.1.●●:49152/ yy社のホームページ開発テスト環境

http://192.●●.1.●●:49153/ zz社のホームページ開発テスト環境

VirtualHost の設定数には限界は設定されていません(制限されていない理由は知りませんがapacheの制限よりも前にWindowsXPやパソコンの能力の限界のほうが先にくるからでしょうね)のでテスト環境の数だけ用意すれば良いです

 

【その他】

127.0.0.1 はパソコン内部でテストするためのループバック用なので他のPCからのアクセスには使えないです

ポート番号49151までは機能を割り当てられているため、使うのであれば49152以降にしておくのが無難です

(判りやすいように50001から割り振ったりしてもいいでしょうね)

ポート8080はプロキシ用なので例外的に80だけでは足りないときに使われたりします

id:goodbabies

すみません、ぜひこの

【4】ドメイン名では無理でもポートを使えば問題無い

でやってみたいのですが、詳しく教えていただけませんか??

2011/01/14 17:58:29
id:Galapagos No.2

Galapagos回答回数963ベストアンサー獲得回数892011/01/14 14:56:22

ポイント23pt

ご質問にあるhostsを設定する方法では、サーバに接続する全てのクライアントPCに同じ設定をしなければならないので、現実的ではありません。


また、"test.net"のようなトップレベルドメインが付いたURLはインターネット上でドメインを取得しなければ利用できません。


一番簡単なのは、サーバ化したWindowsXPのコンピュータ名(ここではhogehogeとします)を利用し、

http://hogehoge/

でアクセスすることです。

id:windofjuly No.3

うぃんど回答回数2625ベストアンサー獲得回数11492011/01/14 19:12:34

ポイント22pt

apacheの設定ファイル(httpd.conf)の下記のような部分を書き換えることで対応します

 

(1)Listenポートの追加

apacheのデフォルト設定では80番だけを監視していたりしますので他の必要なポートも追加します

Listen 80
Listen 8080
Listen 49152
Listen 49153

(2)ポートを名前ベースのVirtualHostに接続する宣言を追加します

NameVirtualHost 192.●●.1.●●:80
NameVirtualHost 192.●●.1.●●:8080
NameVirtualHost 192.●●.1.●●:49152
NameVirtualHost 192.●●.1.●●:49153

下記のようにワイルドカードを使って書く方法もあります

(パソコンが複数のIPアドレスを持っている場合には動作が変わってきますので、よく理解せずにワイルドカードを使うのはトラブルの元となる場合があります)

NameVirtualHost *:80
NameVirtualHost *:8080
NameVirtualHost *:49152
NameVirtualHost *:49153

(3)ファイルの保存先を指定します

ServerName には実在するドメイン名を書いてもかまいませんが実在しないトップレベルドメインをつかっておけば無難です

<VirtualHost 192.●●.1.●●:80>
ServerName www1.example
DocumentRoot ディレクトリのフルパス
</VirtualHost>
<VirtualHost 192.●●.1.●●:8080>
ServerName www2.example
DocumentRoot ディレクトリのフルパス
</VirtualHost>
以下同様

こちらでもワイルドカードでの指定ができます(以下同文)

<VirtualHost *:80>
ServerName www1.example
DocumentRoot ディレクトリのフルパス
</VirtualHost>
<VirtualHost *:8080>
ServerName www2.example
DocumentRoot ディレクトリのフルパス
</VirtualHost>
以下同様

http://httpd.apache.org/docs/2.2/ja/vhosts/examples.html#port

なお、環境によっては指定したディレクトリに対するアクセス権などの問題が別途発生する場合もあります

id:goodbabies

ありがとうございます!ご返信送れてすみませんでした。無事設定できました

2011/01/17 10:09:39
id:ko8820 No.4

ko8820回答回数1221ベストアンサー獲得回数692011/01/15 02:25:33

ポイント22pt

>【4】ドメイン名では無理でもポートを使えば問題無い

http://www.lockon.co.jp/blog/_apache.html

Apacheの設定で可能です。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません