プロセスの各部分をよりよく理解すれば、問題がどこにあるかを特定して答えを見つけることができるかもしれません。
最初に理解する必要があるのは、ドメイン名を入力したときにブラウザがどこに移動するかをどのように認識しているかです。ブラウザは、ローカルのホスト ファイル、ローカルの DNS キャッシュをチェックしてから、DNS サーバーにリクエストを送信します。DNS サーバーは、ISP / DHCP によって自動的に設定されるか、インターネット接続設定で手動で設定されます。そのため、ドメイン名にリクエストを行うと、ブラウザー/OS はそれらの場所をその順序でチェックして、一致するエントリを探します。エントリが見つからない場合、ドメイン名は解決されません。
DNS サーバーは、さまざまな種類のエントリを持つことができます。ドメイン名がホストされている場所、サブドメインの場所、ドメイン名を別の DNS サーバーに向けることができます...ドメイン名がどこにでも向けることができる柔軟な多目的スポットです。また、ドメイン名に設定されている DNS エントリの種類に応じて、ブラウザは、ドメイン名がどこを指すかを別の DNS サーバーに問い合わせる必要があるかどうか、またはそれが探している最終結果であるかどうかを自動的に認識します。DNS サーバーを不適切にセットアップすると、ユーザーが DNS ループに陥る可能性があります。つまり、ある DNS が別の DNS を指し、2 番目の DNS が最初の DNS を指すという状況です。これらの種類のことは、非常に簡単に理解できます。
Hosts ファイルは、基本的に、手動で設定されたローカルの DNS に似たシステムのようなものです。「any.domain」が「any-ip-address」にあると言えます。このようにして、他の DNS リソースをローカルで上書きしたり、無視したりできます。ローカルのものには適していますが、インターネットや多くのデバイスからアクセスしたい場合は、以下で説明する DDNS サービスを使用することを強くお勧めします.
---Apache VHost ファイル---
vhosts ファイルで、デフォルトの vhost を設定しました。このように、vhost が明示的に定義されていない IP またはドメイン名を入力しても、Web サーバーから何らかの応答が返されます。これは私の好みですが、まったく不要です。デフォルトを設定したら、サービスを提供するドメイン/サブドメインを明示的に定義します。
NameVirtualHost *:80
##############ローカルホスト
ServerAdmin webmaster@localhost DocumentRoot "D:/xampp/htdocs" ServerName localhost
<Directory "D:/xampp/htdocs">
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
########othersite.local.whatever
ServerAdmin webmaster@localhost DocumentRoot "D:/xampp/othersite.local.whatever" ServerName othersite.local.whatever AllowOverride All Order Allow,Deny Allow from all Require all grant
VHost ファイルを保存したら、Apache を再起動します。apache が起動して自動的に実行を停止する場合は、apache の構成ファイルまたは Vhosts ファイルにエラーがある可能性があります。作業内容を再確認し、変更を保存した後、動作するまで apache を起動してみてください。
---Windows ホスト ファイル---
DNS サーバーをセットアップしていない場合は、Windows Hosts ファイルを変更して、othersite.local.whatever が Apache サーバーを指していることをマシンに伝える必要があります。このファイルが行うことは、ローカルでドメイン名を IP アドレスに向けることです。他のコンピューターには影響しません。サーバーも実行しているこの 1 台のマシンに対してのみ影響します。
ホスト ファイルは C:/windows/system32/drivers/etc/hosts にあります。
Windows のアクセス許可によっては、最初にホスト ファイルをデスクトップにコピーし、メモ帳またはお気に入りのテキスト エディターで開き、変更を加えて保存し、元の場所にコピーする必要がある場合があります。新しい行に、新しいエントリを追加します。
127.0.0.1 othersite.local.whatever
ホスト ファイルを C:/windows/system32/drivers/etc/ に保存すると、サーバー マシン上の othersite.local.whatever に問題なくアクセスできるようになります。他のローカル Windows コンピューターがある場合は、それらのホスト ファイルをサーバーの IP アドレス (通常は 192.168.1.xx など) を指すように変更して、それらのコンピューターが othersite.local.whatever の vhost にもアクセスできるようにすることができます。
192.168.1.?? othersite.local.whatever
---別の手段で問題に対処する---
ニーズに応じて、いくつかのことを実行できます。
1) すべての Windows コンピューターで vhost ファイルを変更し、他のデバイスでそれを行う方法について調査します。すべてのデバイスが othersite.local.whatever がサーバーを指していると判断した場合、サーバーは適切な vhost ページで応答する必要があります。これは、ローカル ネットワークまたは WAN / インターネットでどのように機能するかです。
2) ローカル DNS サーバーをセットアップし、すべてのデバイスを DNS に向け、DNS にエントリを追加して、サーバーのドメインを指すようにします。これは、これまでに行ったことがない場合は複雑な作業ですが、役立つ場合があります。
3) ダイナミック DNS (DDNS) を設定します。これは少し複雑ですが、実際には非常に簡単です。選択肢を広げるのに本当に役立ちます。
これがどのように機能するかです-自宅のインターネット接続のWAN IPはおそらく時々変化します-DHCPサービスによってISPから割り当てられた動的IP。インターネット モデムの電源をオフにしてから再度オンにすると、IP が変更される可能性があります。なんらかの方法であなたの IP を指す外部 DNS またはリンクがあり、電源のオン/オフまたは DHCP が新しい IP で IP リースを更新したために IP が変更された場合、切断されるため、これは良くありません。あなたのサーバーから。これを回避するために、ダイナミック DNS と呼ばれるものがあります。DDNS サービスにサインアップし (その多くは完全に無料です)、PC で小さな DDNS プログラムを実行します。DDNS プログラムは、数分ごとに IP アドレスをチェックし、DDNS サーバーをあなたの IP で更新します。IPが変更された場合、
このすべての設定を行うには、ポート 80 で着信接続を転送するようにローカル インターネット接続を設定する必要があります (変更しない限り、Web サイトはおそらく 80 で実行されます)。サーバーのローカル IP アドレスを静的なものに設定し (ローカル ネットワーク上で変化しないように、192.168.1.100 など、ニーズに合ったものを知っています)、ポート 80 ですべてを転送するようにインターネット ゲートウェイ/モデム/ルーターを変更します。サーバーPCに。
No-IP ( http://no-ip.com/ )と呼ばれる無料の DDNS サービスを使用するのが好きです。それは無料で、シンプルで信頼性があります。それらでアカウントを作成し、単一のサブドメインを選択します-something.bounceme.netまたは他の事前定義された無料のDDNS名を使用できます. 名前を決めたら、サーバー PC に DDNS / No-IP プログラムをインストールします。これで、something.bounceme.net は常にホーム IP に移動します。ポート転送を適切に設定すると、ポート 80 のすべてが自動的に Web サーバーに送られます。
最後のステップは、something.bounceme.net の代わりにホーム IP を指す通常のドメイン名を取得することです。No-IP を支払って派手なことをすることも、ここで説明する無料の方法で行うこともできます。
前回これを行ったとき、ドメイン レジストラーとして Godaddy を使用しましたが、すべてが大幅に変更されました。
まず、ドメイン名が必要です。たとえば、homesite.com を所有していて、laptop.homesite.com がホーム Web サーバーを指すようにしたいとします。
ドメイン homesite.com の場合、「laptop」のキーと「something.bounceme.net」の DDNS 名の値を持つタイプ CNAME の DNS レコードを追加します。これにより、laptop.homesite.com がホーム IP アドレスに解決されるようになります。わかる?ここで、laptop.homesite.com と入力すると、DNS は something.bounceme.net をチェックするように指示し、それがホーム IP に解決されます。
CNAME エントリにはいくつかの制限があります。「homesite.com」だけを DDNS IP に転送することはできません。基本的に、ラップトップや自宅などのサブドメイン エントリを使用する必要があります。ただし、できることの 1 つは、「サブドメイン」エントリ WWW を使用して、www.homesite.com がホーム IP を指すようにすることです。Godaddy を使用すると、Godaddy の広告を表示するドメイン名の無料の限定ホスティング アカウントを取得できます。このアカウントを「homesite.com」に設定し、そこにリダイレクト コードを配置して、ユーザーを「www.homesite.com」に送ることができます。このように、ユーザーが「homesite.com」と入力すると、自動的に www.homesite.com に送信されます。
これがすべて理にかなっていることを願っています。
確認しましょう - サーバーの静的 IP を設定し、ポート 80 がサーバーのローカル IP を指すようにポート転送を設定し、DDNS ( http://www.no-ip.comなど) を設定し、DDNS プログラムをインストールし、CNAME を設定します。 www.yoursite.com がホーム サーバーを指すようにドメイン レジストラーと連携します (CNAME www -> your-ddns-url.bounceme.net)。これで、www.yoursite.com で世界中のどこからでも、ローカルのインターネット接続内から、またはスターバックスからサーバーにアクセスできるはずです。
FTP サーバー (通常は 21) のポート転送をセットアップして、Web サイトをリモートで編集したり、ホーム ファイルにアクセスしたりすることもできます。自宅の PC にリモート アクセスできると、さまざまなことができます。
この短いウォークスルーが、すべてのデバイスで apache VHost にアクセスするために必要な各部分を理解するのに役立つことを願っています。各デバイスのホスト ファイルなどをセットアップする必要がないため、DDNS セットアップ/オプションを使用するのが好きです。通常の Web サイトにアクセスするのと同じです。
質問やコメントを歓迎します。私は文字通りこれを頭の上からすべて書いただけです。