2011-08-21 11 views
8

現在、私のLAN上の別のコンピュータでアクセスできるように、Apache HTTP Serverの仮想ホスト(サブドメイン)を設定しようとしています。 PHPとMySQLを使用したApacheの現在の設定は、同じ物理マシン上でローカルに動作します。LAN上の別のコンピュータでApache仮想ホスト(サブドメイン)にアクセス

したがって、デフォルト以外のポート50080で実行される2つの仮想ホスト設定(開発とCMS)があります。サーバーのマシンのIPアドレスは10.0.0.10です。同じ物理マシンから、私が使用して2つの仮想ホストにアクセスすることができます。

10.0.0.10:50080 

しかし、私はできませんかの操作を行います。

development.localhost:50080 
cms.localhost:50080 

異なる物理マシンから、私は使用してサーバーのルートにアクセスすることができます別のマシンから仮想ホストにアクセスする方法を知らない。私は次のようなものを試しました:

development.10.0.0.10:50080 
cms.10.0.0.10:50080 

しかし、それらは動作していないようです。ここで

は私httpd-vhostsファイルがどのように見えるかです:

NameVirtualHost *:50080 
<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

私はここで他のポストとApacheフォーラムのいくつかを読んで、このための正確なケースがありません。

仮想ホスト(サブドメイン)に別のマシンからアクセスして、可能であれば同じポートを維持する方法を知りました。事前

答えて

25

、私は誰を探している場合は、設定され、ここで、それを考え出しましたこの:

============================================ ====================

マシンA(A pache HTTPサーバー): HTTPD-バーチャルホスト:

NameVirtualHost *:50080 

<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
    ServerAlias alias <!-- Added --> 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ServerAlias development.phoenix <!-- Added --> 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

ホスト:

127.0.0.1 development.localhost 

127.0.0.1 alias 
127.0.0.1 development.alias 

================== ========================================== ==============

マシンB(ゲストマシン): ホスト:第二マシンから

10.0.0.10 alias 
10.0.0.10 development.alias 

は、あなたが「エイリアス」および「development.alias」

+2

これは多くのおかげで、大きな助けでした!まだこれでトラブルを抱えています誰のためのサイドノートのカップル:また、あなたは「フェニックス」は上記で書かれている 、私は別名を使用し、それが働いた(別名は他の場所であるとき不死鳥を使用した理由はわからない...) が必要な場合がありますネットワーク経由でWebサイトを表示する前に、使用しているポートにローカルファイアウォールのルールを作成します。私はポート80の例外を作成しなければなりませんでした(私は50080を使用しませんでした) –

+0

mod_proxyを追加してから、ProxyPass/dev http://development.localhost/とProxyReversePass/dev http:// developmentを追加することもできます。localhost /を開き、http:// public-ip/dev/ –

+0

を使用してください。クライアントのホストファイルを編集しなくても可能ですか? –

2

おかげで、私は何かが欠けていない限り、あなたは、DNSエントリを設定する、またはサーバーにアクセスする各コンピュータの/ etc/hostsファイルにエントリを追加するか必要があります。

localhostは、デフォルトでは誰の/ etc/hostsファイルにも存在するエントリで、常に127.0.0.1を指します。/etc/hostsエントリを追加しないと、developer.localhostは存在せず、ipアドレスの前にサブドメインを置くと、まったく動作しません。

+0

私のホストエントリを持っているApacheのマシン上のファイル: 127.0.0.1のdevelopment.localhost 二マシンはまだ何もない、私は何を追加する必要がありますか? – YTKColumba

+0

それはうまくいく、はい。 –

0

Named Virtual Hostsの場合、apacheサーバーに接続するにはホスト名またはドメイン名を使用する必要があります。 ipsで動作しません。

2番目のシステムの/etc/hostsにエントリを挿入できます。

+0

私のホストエントリを持っているApacheのマシン上のファイル: 127.0.0.1のdevelopment.localhost 二マシンはまだ何もない、私は何を追加する必要がありますか? – YTKColumba

+0

' development.server'のようにして、' ServerAlias development.server'をあなたのApache設定に追加します。 –

3

私は次のように変更(にServerAlias行を追加)することをお勧め:変更を有効に確保するために

NameVirtualHost *:50080 
<VirtualHost *:50080> 
    DocumentRoot "C:/www/HTTP" 
    ServerName localhost 
    ServerAlias cms.myserver.com 
</VirtualHost> 

<VirtualHost *:50080> 
    ServerAdmin [email protected] 
    DocumentRoot "C:/www/HTTP/development" 
    ServerName development.localhost 
    ServerAlias development.myserver.com 
    ErrorLog "logs/development.localhost-error.log" 
    CustomLog "logs/development.localhost-access.log" common 
</VirtualHost> 

Apacheを再起動します。

次に、2台目のコンピュータで、これらの新しいドメイン名のカスタムDNSエントリを追加する必要があります。 Windowsの場合は、ファイルc:\windows\system32\drivers\etc\hostsを編集します。 Linuxの場合は、/ etc/hostsを編集します。いずれかの方法で追加:

10.0.0.10 development.myserver.com 
10.0.0.10 cms.myserver.com 

を今すぐあなたの2台目のコンピュータで使用すると、次のURLにアクセスすることができるはずです。

[OK]を
http://development.myserver.com:50080 
http://cms.myserver.com:50080 
+0

あなたが指定した設定でApacheを起動しようとすると、エラーが発生しているようです。 – YTKColumba

+0

Apacheを起動しようとしているときにエラーが発生しているので、httpd-vhostsファイルの設定に見えます。 最初にエントリがディレクトリのルートを指していて、「開発」エントリと同じであると判断されたので「cms」エントリを追加しませんでした – YTKColumba

+0

ログのApacheエラーは何ですか? –

0

SSH +パテトンネルを使用し、したがって127.0を有するアクセスすることができなければなりません。 0.1私のサーバー上で、私は私のサーバー側で次の手順を実行して、私のサブドメインにアクセスするために管理:

# nano /etc/hosts 

127.0.0.1 localhost.localdomain localhost 
127.0.0.1 sub1.domain.com sub2.domain.com sub3.domain.com sub4.domain.com 

私は、リモートコンピュータのホストファイルを変更していない、それが魅力の

のように動作します
関連する問題