人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

社内ローカルサーバーを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です。

●質問者: goodbabies
●カテゴリ:インターネット ウェブ制作
✍キーワード:.NET 127.0.0.1 ETC IP pc
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● うぃんど
●23ポイント

【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だけでは足りないときに使われたりします

◎質問者からの返答

すみません、ぜひこの

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

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


2 ● Galapagos
●23ポイント

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


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


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

http://hogehoge/

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


3 ● うぃんど
●22ポイント

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

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

◎質問者からの返答

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


4 ● ko8820
●22ポイント

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

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

Apacheの設定で可能です。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ