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】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だけでは足りないときに使われたりします
ご質問にあるhostsを設定する方法では、サーバに接続する全てのクライアントPCに同じ設定をしなければならないので、現実的ではありません。
また、"test.net"のようなトップレベルドメインが付いたURLはインターネット上でドメインを取得しなければ利用できません。
一番簡単なのは、サーバ化したWindowsXPのコンピュータ名(ここではhogehogeとします)を利用し、
でアクセスすることです。
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】ドメイン名では無理でもポートを使えば問題無い
でやってみたいのですが、詳しく教えていただけませんか??