私は現在プロジェクトに取り組んでおり、片方のラップトップがもう片方のローカルホストに接続する自宅の2つのラップトップでテストしたいと思います。XAMPPを使用しています。どうすればよいですか?
私は現在プロジェクトに取り組んでおり、片方のラップトップがもう片方のローカルホストに接続する自宅の2つのラップトップでテストしたいと思います。XAMPPを使用しています。どうすればよいですか?
回答:
それは間違いなく可能です。ここでは、Apacheの一般的なケースを取り上げます。
Symfony2の大ファンで、symfonyのウェブサイトにhttp://symfony.local/
4台のコンピューター(ウェブサイトをホストしているメインのコンピューター、およびMac、Windows、およびLinuxディストリビューション(ワイヤレスまたは非接続)に接続)からアクセスしたいとします。メインコンピュータ。
1 仮想ホストを設定します。
まず、Apache httpd-vhosts.conf
ファイルで仮想ホストを設定する必要があります。でXAMP、あなたはここで、このファイルを見つけることができますC:\xampp\apache\conf\extra\httpd-vhosts.conf
。でMAMP、あなたはここで、このファイルを見つけることができますApplications/MAMP/conf/apache/extra/httpd-vhosts.conf
。この手順では、symfony.local
要求を処理するためにコンピューター上のWebサーバーを準備します。仮想ホストの名前と、Webサイトのルート/メインフォルダーを指定する必要があります。これを行うには、そのファイルの最後に次の行を追加します。DocumentRoot
メインフォルダがある場所にを変更する必要があります。ここで私は/Applications/MAMP/htdocs/Symfony/
私のウェブサイトのルートとして採用しました。
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
ServerName symfony.local
</VirtualHost>
2 hostsファイルを設定します。
クライアント(その場合はブラウザー)がsymfony.local
実際の意味を理解するには、コンピューター上のhostsファイルを編集する必要があります。ブラウザにURLを入力するたびに、コンピュータはそれが何を意味するかを理解しようとします!symfony.local
コンピュータにとって何も意味しません。そのため、名前symfony.local
をIPアドレスに解決しようとします。まず、コンピューター上のホストファイルを調べて、IPアドレスをアドレスバーに入力したものと一致させることができるかどうかを確認します。できない場合は、DNSサーバーに問い合わせます。ここでの秘訣は、hostsファイルに以下を追加することです。
/private/etc/hosts
。/etc/hosts
。\Windows\system32\private\etc\hosts
。\Windows\system32\drivers\etc\hosts
。\Windows\system32\drivers\etc\hosts
。Hosts file
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
127.0.0.1 symfony.local
これ以降、このコンピューターでsymfony.localと入力するたびに、コンピューターはループバックインターフェイスを使用してsymfony.localに接続します。localhost(127.0.0.1)で作業したいことがわかります。
3 symfony.local
他のコンピューターからのアクセス:
最後に、主な質問に到達します。
他のコンピューターから自分のWebサイトにアクセスするにはどうすればよいですか?
これは簡単です。他のコンピュータにどのようにして見つけられるかを伝えるだけですsymfony.local
!これどうやってやるの?
3a ウェブサイトをホストしているコンピューターのIPアドレスを取得します。
まず、Webサイトをホストしているコンピューター(最初から取り組んでいるコンピューター)のIPアドレスを知る必要があります。端末では、MACおよびLINUXタイプifconfig |grep inet
で、WINDOWS
タイプでipconfig
。このコンピュータのIPアドレスが192.168.1.5であると仮定します。
3b Webサイトにアクセスしようとしているコンピューター上のhostsファイルを編集します。:
繰り返しますが、MACでは、このファイルはにあり/private/etc/hosts
ます。上のLINUX、中 /etc/hosts
。とWINDOWSで\Windows\system32\private\etc\hosts
(WINDOWS 7を使用している場合、このファイルはにあります\Windows\system32\drivers\etc\hosts
)。ここでのトリックは、アクセス/通信しようとしているコンピューターのIPアドレスを使用することです。
##
# Host Database
# localhost is used to configure the loopback interface
##
#...
192.168.1.5 symfony.local
4 最後にブラウザで結果をお楽しみください
これで、ブラウザーにアクセスして入力http://symfony.local
すると、さまざまなコンピューターでWebサイトを美しく表示できます。OSXユーザーであれば、Virtual Boxを介してInternet ExplorerでWebサイトをテストする場合(Windowsコンピューターを使用したくない場合)も、同じ戦略を適用できることに注意してください。これは、OSX上のWindows / IEテスト環境の作成で美しく説明されています。
モバイルデバイスからローカルホストのWebサイトにアクセスする方法について疑問に思うかもしれません。場合によっては、お使いのデバイスのホストファイル(iPhone、iPad ...)を変更できないことがあります(脱獄は除外されます)。
次に、解決策は、Webサイトをホストしているマシンにプロキシサーバーをインストールし、iPhoneからそのプロキシに接続することです。これは実際には次の投稿で非常によく説明されており、設定するのにそれほど長くはありません。
Macでは、次のことをお勧めします。モバイルデバイスのローカルホスト名を使用してMac OS X Webサイトをテストする:プロキシとしてSquidManを使用します。100%無料のソリューションです。Charlesをプロキシサーバーとして使用できる人もいますが、50ドルです。
Linuxでは、Squidをプロキシサーバーとして使用することで、上記のMac OSの方法を採用できます。
Windowsでは、Fiddlerを使用してそれを行うことができます。解決策は次の投稿で説明されています:FiddlerによるiPhoneトラフィックの監視
@Dre。ホストファイルを手動で編集しないことにより、別のコンピューターからWebサイトにアクセスする方法はありますか?Webサイトにアクセスしたい100台のコンピューターがあるとします。
これは興味深い質問です。OPの質問に関連しているので、手伝ってください。
すべてのマシンがWebサイトがホストされている場所を認識できるように、ネットワークを変更する必要があります。ほとんどの日常的なルーターはこれを行わないため、ネットワーク上で独自のDNSサーバーを実行する必要があります。
ルーター(192.168.1.1)があるとしましょう。このルーターにはDHCPサーバーがあり、ネットワーク上の100台のマシンにIPアドレスを割り当てます。
ここで、同じように、同じネットワーク上に、192.168.1.5
Webサイトがあるマシンがあるとします。そのマシンを呼び出しますpompei。
$ echo $HOSTNAME
pompei
以前と同じように、そのマシンpompeiで192.168.1.5
はWebサイトにサービスを提供するHTTPサーバーが実行されますsymfony.local
。
すべてのマシンsymfony.local
がホストされpompeiていることを知るにsymfony.local
は、ホストされている場所を知っているネットワーク上のカスタムDNSサーバーが必要になります。ネットワーク上のデバイスは、pompei内部で提供されているドメイン名を解決できます。
Step 1: DNS Server
ネットワークにDNSサーバーを設定します。pompei便宜上オンにして、dnsmasqのようなものを使用してみましょう。
Dnsmasqは、ドメインネームシステム(DNS)フォワーダーなどを提供します。
pompeiDNSmasqを実行してDNS要求を処理しHey, pompei, where is symfony.local
、応答したいと考えていますHey, sure think, it is on 192.168.1.5 but don't take my word for it
。
dnsmasqをインストールしてください。dnsmasq構成ファイルは通常、/etc/dnsmasq.conf
環境によって異なります。
私は個人的にno-resolv
googleサーバーを使用していますserver=8.8.8.8 server=8.8.8.4
。
*注意:* / etc / hostsファイルを変更する場合は、変更が有効にならないため、DNSmasqを必ず再起動してください。
Step 2: Firewall
動作pompeiさせるには、ポート53との間で送受信される「ドメイン」パケットの送受信を許可する必要があります。もちろん!これらはDNSパケットであり、pompei許可しない場合、DNSサーバーに到達する方法はまったくありません。先に進んで、そのポート53を開いてください。Linuxでは、これを古典的に使用iptables
します。
私が思いついたことを共有しますが、ファイアウォールに飛び込んですべてをよく理解する必要があるでしょう。
#
# Allow outbound DNS port 53
#
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
Step 3: Router
DNSサーバーが192.168.1.5
現在オンであることをルーターに伝えます。ほとんどの場合、ルーターにログインして手動で簡単に変更できます。
それはあなたがマシン上にあり、を求める場合には、それだsymfony.local
、それはあなたの要求されますDNSサーバーのsymfony.local
ホストされているが、とすぐそれがDNSサーバーからの回答を受け取ったとして、その後、適切お送りしますHTTPリクエストをするpompei上192.168.1.5
。
これで遊んで楽しんでもらいます。これらの2つのステップが主要なガイドラインであるため、これが初めての場合はデバッグして数時間を費やす必要があります。これはもう少し高度なネットワークであり、プライマリDNSサーバー、セカンダリDNSサーバーなどがあるとしましょう。幸運を!
host
手動でファイルを編集せずに別のコンピューターからWebサイトにアクセスするための可能な方法はありますか?100台のコンピュータがWebサイトにアクセスしたいとします
同じワイヤレスでインターネット全体の両方のラップトップでテストするには、http://localhost.run/やhttps://ngrok.com/のようなサービスを使用できます。
両方のマシンが同じワークグループに属しcmd.exe
ている場合は、接続するマシンで開きipconfig
、IPv4 Address
行にIPを入力してメモします。
次に、接続するマシンでを使用しますhttp:// + the IP of the target machine
。
それでうまくいくはずです。
Mac OS Xの場合:
ターミナルで実行ifconfig | grep 192.
して、現在のネットワーク上のマシンの内部IPを取得します。のようなものかもしれません192.168.1.140
サーバーを起動します。たとえば、node server.js
あるポートでサーバーを起動する場合があります。
スマートフォンで、にアクセスする192.168.1.140:3000
か、サーバーが実行されているポートにアクセスします。
私のマシンには管理者権限がなく、nodejsがすでにインストールされているため、このツールは私に多くの節約をしてくれました。なんらかの理由で、ネットワーク上の設定では、ブラウザでIPをポイントするだけで他のマシンにアクセスできません。
# Using a local.dev vhost
$ browser-sync start --proxy
# Using a local.dev vhost with PORT
$ browser-sync start --proxy local.dev:8001
# Using a localhost address
$ browser-sync start --proxy localhost:8001
# Using a localhost address in a sub-dir
$ browser-sync start --proxy localhost:8080/site1
browser-sync start --proxy localhost:3000
別のシェルで使用しました。ネットワークに接続されている別のデバイスで、次のように入力します${computerIP}:3000
。何も表示されません。もう少し提供すべきことがあると思います。
ファイアウォールが原因で、ローカルホストのウェブサーバーにアクセスできない可能性があります。
必要に応じて、コンピュータのインターネットセキュリティウイルス対策ネットワークセキュリティの両方のIPアドレスを安全なIPアドレスとして設定します。
Windows PCのIPアドレスを見つける方法:スタート>(実行)次のように入力します:cmd(Enter)
(これによりブラックボックスのコマンドプロンプトが開きます)
ipconfigを入力します(Enter)
ApacheまたはIIS WebサーバーがPCにインストールされているとしましょう:192.168.0.3
で、ラップトップでWebサーバーにアクセスしたいとします。(ラップトップのIPは192.168.0.5です)
PCで、FirefoxまたはInternet Eplorerブラウザー内にhttp:// localhost /と入力して、Webサーバー上のデータにアクセスします。
ラップトップでhttp://192.168.0.3/と入力して、PC上のWebサーバーにアクセスします。
これらすべてを機能させるには、ウェブサーバーを正しくインストールする必要があります(IIS、Apache、XAMP、WAMPなど)。
それが機能しない場合は、ラップトップからPCにpingしてみてください。ラップトップで
コマンドpropmtを開きます。スタート> cmd(Enter)
ping 192.168.1.3(Enter)
pingが失敗した場合、ファイアウォールが接続またはネットワークをブロックしていますケーブルが不良です。モデムまたはネットワークスイッチとマシンを再起動します。
ポートを使用しているチャットプログラムなどのプログラムを閉じます。
別のポート番号を試すこともできます:http:192.168.0.3:80またはhttp:192.168.0.3:81または最後に任意の乱数