ネットワーク上の別のデバイスからXAMPPサーバーで作成したWebサイトへのアクセスに問題があります。
私はすでにHOSTSファイルを変更しました:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 example.com
およびC:\xampp\Apache\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
ServerName example.com
DocumentRoot "C:\xampp\htdocs\Example"
</VirtualHost>
ブラウザで作成したドメイン名にアクセスできますが、別のデバイスから検索すると、そのようなDNSサーバーエラーが表示されます。デバイスのHOSTSファイルを変更せずにWebサイトにアクセスする別の方法はありますか?
127.0.0.1
は特別であることに注意してください。常に「localhost」を指します。現在リクエストを行っているコンピューター/デバイス。 LAN上のコンピューターのプライベートIPアドレスを使用する必要があります。
@danはコメントで必要な方法に触れました:
ドメインのDNSテーブルにAレコードを作成し、それをルーターのパブリックIPアドレスにポイントし、ポート80をApacheを実行しているローカルコンピューターのプライベートIP(192.168.0.2など)に転送する必要があります。また、そのコンピューターのポート80のファイアウォールルールを無効にする必要があります。ただし、上記よりも簡単な方法は、プライベートIPアドレスを他のデバイスのURLとして使用することですが、Apacheを実行しているコンピューターのファイアウォールを無効にする必要があります。
ただし、同じLAN上の他のデバイスからのみサイトにアクセスできるようにする必要がある場合は、DNSのpublicA
レコードをprivate Webサーバーを実行しているローカルコンピューターのIPアドレス(例:192.168.0.2
)。 LAN上のデバイスのみを処理しているため、おそらく更新するファイアウォール設定はありません(LANのサイズと複雑さに依存します)-LAN上のデバイスのみが内部/プライベートIPアドレスにアクセスできます。
(ダンが示唆するように、プライベートIPアドレスを直接使用する場合、サーバー上で一度に1つの開発サイトのみを有効にできます。)
ドメイン全体を引き継ぐよりも、これをメインドメインのサブドメインとして実装する方が簡単です。これにより、ライブの公開Webサイトと同時にローカル開発サーバーが(LANからのみ)使用可能になります。例えば。メインの公開Webサイトはwww.example.com
で利用でき、ローカル開発サーバーはlocal.example.com
(LAN上のWebサーバーのプライベートIPアドレスへのA
レコードとして単純に構成されています)で利用できます)。
開発サーバーで名前ベースの仮想ホストを使用して、サブドメインをServerName
として定義します。
<VirtualHost *:80>
ServerName local.example.com
DocumentRoot "C:\xampp\htdocs\Example"
</VirtualHost>
この方法を使用すると、LAN上のすべてのデバイスがサイトにアクセスできるようになります。それらのデバイス上の個々のHOSTSファイルを編集(またはDNSをオーバーライド)する必要はありません。一部のモバイルデバイスでは、ウェブサイトを公開する必要があるため、「データセーバー」オプションを無効にする必要があることに注意してください(「データセーバー」サーバーは必要な要求を実行できません)。