2012-06-28 9 views
23
  • 私はWamp 2.2サーバーでWindows 7を使用しています。
  • 私は2つの仮想ホスト:www.project1.comwww.project2.comをセットアップしました。
  • "hosts"、httpd.conf、およびhttpd-vhosts.confファイルを、下記の変更に変更しました。私のブラウザを使用して

私はwww.project1.comまたはwww.project2.comを入力すると、私は正常に私のWebページには、上のインストールされたサーバを持っているラップトップで開かれます。LAN経由で他のマシンからバーチャルホストにアクセス

"ホストがファイル" の変更:私は、ファイルの最後に以下を追加しました: - :

Include conf/extra/httpd-vhosts.conf 

変更 - httpd.confファイルに

127.0.0.1  localhost 
127.0.0.1  www.project2.com 
127.0.0.1  www.project1.com 

変更httpd-vhostsファイル: -

NameVirtualHost *:80 

<Directory "D:/websites/"> 
    AllowOverride All 
    Order Deny,Allow 
    Allow from all 
    </Directory> 
<VirtualHost 127.0.0.1> 
    DocumentRoot "D:/websites/wamp/www/" 
    ServerName localhost 
</VirtualHost> 


<VirtualHost 127.0.0.1> 
    DocumentRoot "D:/websites/project1/" 
    ServerName www.project1.com 
</VirtualHost> 


<VirtualHost 127.0.0.1> 
    DocumentRoot "D:/websites/project2/" 
    ServerName www.project2.com 
</VirtualHost> 


今すぐ;私は(サーバとの1) PC_1にブラウザからこれらのウェブページを開くことができるので、どのように私は PC_2でブラウザからこれらのWebページにアクセスすることができますか? (私は、LAN経由で PC_1に接続されている任意のPCを意味する。)

+0

私はこれに新しいもので、もう少し質問があります。 1.達成したいと思うものに私の上記のコードは適していますか? @Gabriel - 上記のコードと、別のPCのホストファイルを変更するようにあなたの提案をすると、www.project1.comと入力するとwampのデフォルトページが開きます – jatin3893

+0

これは通常の方法です。例えば、これを動的DNSサービスと組み合わせたい場合は、いくつかのServerAliasオプションも設定できます。 – dmp

+0

はちょうど私が答える http://stackoverflow.com/questions/2530418/wamp-server-multiple-virtual-hosts-are-not-working-on-windows/17850423#17850423 このリンクを参照してください。そのために... –

答えて

20

127.0.0.1*:80に変更し、前述のGabrielのように、他のマシンのhostsファイルにエントリを追加し、サーバのIPに関連付けるドメインを追加します。

あなたはディレクティブに明示的なIPを入れた場合、ApacheはそれだけでIPをリッスンします - しかし、ワイルドカードは、それはそれで使用可能なすべてのIPにバインド教えてくれます。

<VirtualHost *:80> 
    DocumentRoot "D:/websites/project1/" 
    ServerName www.project1.com 
</VirtualHost> 

サーバーは、例えば192.168.1.70上にある場合は、LAN上の他のマシンでは、ホストエントリは次のようになります。

192.168.1.70  www.project1.com 

Apacheを再起動し、それが正常に動作する必要があります。

仮想ホストを使用している場合、ApacheはHTTPリクエストヘッダーで渡されたドメインとconfig内のサイトの設定が一致しない場合に、最初の定義をデフォルトとして使用します。デフォルトのページが表示された理由です。

あなたはNameVirtualHost *:80ディレクティブで、すべてのIPにバインドするためにApacheを語ったが、その後、セットアップ、外部IPのためのサイトをしませんでした。希望が助けてくれる!

+0

訪問先のマシンホストを編集せずに、LANマシンからipaddress/virtualhostnameを使用できるようにするにはどうすればよいですか? – dibs

+0

iPhoneからこれをテストする場合はどうすればよいですか? hostsファイルを変更する以外の方法はありますか? – Victor

0

あなたはからページを表示しようとしているマシン上のhostsファイルを変更する必要があります。

他のlanマシンのhostsファイルに追加する必要があります。

+0

上記コードとあなたの提案は、別のPCのホストファイルを変更するために、それはwww.project1.comを入力するとwampのデフォルトページを開きます 私はそれをwww.project1のインデックスページに移動させます.com? – jatin3893

5

ローカルネットワーク内の2台のコンピューターがあります。

コンピュータ(192.168.1。70)セットアップ(D:\ WAMPを\ビン\ apacheの\ Apache2.2.11 \ confに\エクストラ\のhttpd-vhosts.conf):

<VirtualHost *:80> 
    DocumentRoot "D:/websites/project1/" 
    ServerName www.project1.com 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "D:/websites/project2/" 
    ServerName www.project2.com 
</VirtualHost> 

Bコンピュータセットアップ(C:/窓/ system32に/ドライブの/ etc /ホスト):

192.168.1.70 www.project1.com 
192.168.1.70 www.project2.com 

Bアクセス、私のプロジェクトは動作しています。

19

danpの回答に加えて、クライアントマシンのetc/hostsファイルを変更せずに、仮想ホストにアクセスするには、仮想ホストにポートを割り当てます。

  1. 編集サーバのhttpd.confファイルで::(61行前後)「Listen」の

    \wamp\bin\apache\apache2.2.x\conf\httpd.conf 
    

    検索あなたは、モバイルやタブレットデバイスを使用してサーバーにアクセスしたい場合、これは理想的です。

    Listen 0.0.0.0:80 
    Listen [::0]:80 
    

    ポート81(または任意のポート)をリッスン追加するには、次の行を追加します:あなたは、Apacheがポート80をリッスンするようにすることができます以下が表示されるはずです

    Listen 0.0.0.0:81 
    Listen [::0]:81 
    
  2. 編集httpd-vhosts.confファイルで:

    \wamp\bin\apache\apache2.2.x\conf\extra\httpd-vhosts.conf 
    
    あなた"仮想ホスト"タグがポートに変更し

    81

    <VirtualHost *:81> 
        DocumentRoot "D:/websites/project1/" 
        ServerName www.project1.com 
    </VirtualHost> 
    
  3. Apacheサーバーを再起動します。

  4. クライアントマシン/タブレット/モバイルでは、Webブラウザ上で、サーバーのIPアドレス(192.168.0.10、または任意のIP)を入力しますが、次の形式でポート番号が続く:

    http://192.168.0.10:81 
    
+0

パーフェクト、私はちょうどあなたがファイアウォールのwamp(インバウンドルール)のためにポート81を開く必要があるかもしれない窓にそれを追加するでしょう –

+0

私はまた、ポートに固執しています。ローカルのLANにserveralホスト名(いくつかのルータのDNS設定や他の場所のいずれか)でWindowsマシンを認識させる方法があれば、もっとエレガントになります。 –

+1

すべてのデバイスで美しいソリューション。キラーソリューション:)テストされ、証明されています。ありがとう – ColinWa

2

選択した答えを考慮しないように更新ポイントのカップル:

  1. NameVirtualHostがもはやApacheのバージョン 012の後に使用されていますと省略することができます。

    2.3.11で

    以降では、IPアドレスとポートの組み合わせは、複数の仮想ホストで使用 ある任意の時間は、名前ベースのバーチャルホストは は自動的にそのアドレスに対して有効になっています。

  2. 我々はLAN経由でWebサイトをホスティングして話をしているので、あなただけの 、ローカルネットワーク上のIPアドレスからの接続を受け入れるように*さんが 要件を設定してみましょう。たとえば、一般的なLinksysルータでは、ネットワーク上の各デバイスに割り当てられるデフォルトの IPは、192.168.1.100 〜192.168.1.255の間です。Require ip 192.168.1 を使用して、IPアドレス192.168.1.XXXの LAN上のすべてのデバイスからの接続を許可することができます(最終オクテットはIPから除外され、 の全範囲を許可することに注意してください)。

    これにより、 がLANで使用可能になり、別のローカルでのみ使用できるようにプロジェクトごとのアクセスを構成できます。

    # This will allow all LAN connections to www.project1.com 
    <VirtualHost *:80> 
        DocumentRoot "D:/websites/project1/" 
        <Directory "D:/websites/project1/"> 
         Require local 
         Require ip 192.168.1 
        </Directory> 
        ServerName www.project1.com 
    </VirtualHost> 
    
    # This will allow only the machine hosting the website to access www.project2.com 
    <VirtualHost *:80> 
        DocumentRoot "D:/websites/project2/" 
        <Directory "D:/websites/project2/"> 
         Require local 
        </Directory> 
        ServerName www.project2.com 
    </VirtualHost> 
    

    あなたのサイトがホストにポート80上のトラフィックを転送するルータなしに公に提供されることはありませんが、私はこれがベストプラクティスと考えていると信じています。特に、LAN上のデバイスで使用できるプロジェクトを制御する必要がある場合に必要です。

  3. 注意:ホストマシンは、ルータのDHCPによって割り当てられる代わりに、固定IPアドレス を使用するように設定する必要があります。 他のデバイスのホストファイルを編集してサーバのIPアドレスを指しているので、 は変更したくありません。

ローカルの開発サーバー上のアクセス制限を持っているのが一般的であり、あなたは、特にローカルネットワークが利用できるようにする必要がありますので、私はこれを含めています*。

関連する問題