私は現在プロジェクトに取り組んでいます、そして私は自宅で2台のラップトップでそれをテストしたいと思います。私はXAMPPを使っています。どうやってこれをするの?
それは間違いなく可能です。ここではApacheについて一般的なケースを取り上げます。
あなたがSymfony2の大ファンで、4つの異なるコンピューター(あなたのウェブサイトをホストしているメインコンピューター、そしてMac、WindowsそしてLinuxディストリビューション(ワイヤレスであるかどうか))からhttp://symfony.local/
であなたのsymfonyウェブサイトにアクセスしたいとしましょう。メインコンピュータへ。
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アドレスに解決しようとします。これは、まずコンピュータ上のhostsファイルを調べて、アドレスバーに入力したIPアドレスとIPアドレスを一致させることができるかどうかを確認することによって行います。それができない場合、それはそれから尋ねるでしょうDNS servers。ここでの秘訣は、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アドレスを知る必要があります。端末では、on MACおよびLINUX type ifconfig |grep inet
、on WINDOWS
type ipconfig
になります。このコンピュータのIPアドレスが192.168.1.5であるとしましょう。
3b ウェブサイトにアクセスしようとしているコンピュータ上のhostsファイルを編集します。:
また、MACでは、このファイルは/private/etc/hosts
にあります。 on LINUX/etc/hosts
; \Windows\system32\private\etc\hosts
内のWINDOWS(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テスト環境の作成 で詳しく説明されています。
あなたはモバイルデバイスからあなたのlocalhostウェブサイトにアクセスする方法を不思議に思うかもしれません。場合によっては、デバイス上のhostsファイル(iPhone、iPadなど)を変更できないことがあります(脱獄を除く)。
まあ、解決策はそれからウェブサイトをホストしているマシンにプロキシサーバーをインストールし、あなたのiPhoneからそのプロキシに接続することです。それは実際には以下の記事で非常によく説明されており、セットアップするのにそれほど長くはかかりません。
Macでは、私はお勧めします: モバイルデバイス上のローカルホスト名を使ってMac OS X Webサイトをテストする :プロキシとして SquidMan を使う。 100%無料のソリューションです。プロキシサーバとして Charles を使うこともできる人もいますが、50ドルです。
Linuxでは、プロキシサーバーとして Squid を使用することで、上記のMac OSの方法を調整できます。
Windowsでは、 Fiddler を使用してそれを実行できます。解決策は次の記事で説明されています。 FiddlerによるiPhoneトラフィックの監視
@します。手動でHostファイルを編集しないで他のコンピュータからWebサイトにアクセスする方法はありますか? Webサイトにアクセスしたいと思っているコンピュータが100台あるとします。
これは面白い質問です、そしてそれはOPの質問に関連しているので、私に手助けをさせてください。
あなたは、あなたのウェブサイトがどこでホストされているかをすべてのマシンが知ることができるようにあなたのネットワークに変更を加える必要があるでしょう。 ほとんどの日常的なルーターはそれをしません ですからあなたは自分のネットワーク上であなた自身を実行しなければなりませんDNSサーバー。
ルーターがあるとしましょう(192.168.1.1)。このルータはDHCPサーバを持ち、ネットワーク上の100台のマシンにIPアドレスを割り当てます。
さて、あなたが同じネットワーク上にあなたのウェブサイトを持っている192.168.1.5
のマシンを持っているとしましょう。その機械を呼びます pompei。
$ echo $HOSTNAME
pompei
以前と同じ、そのマシン pompei at 192.168.1.5
はHTTP Serverを実行し、あなたのウェブサイトsymfony.local
にサービスを提供します。
すべてのマシンがsymfony.local
がホストされていることを知るために pompei symfony.local
がどこにホストされているかを知っているカスタムDNSサーバーがネットワーク上に必要になります。ネットワーク上のデバイスは、それによって提供されるドメイン名を解決できるようになります。 pompei 内部的に.
Step 1: DNS Server
ネットワーク上にDNSサーバーを設定します。やってみよう pompei 便宜上、 dnsmasq のようなものを使用してください。
DnsmasqはDomain Name System(DNS)フォワーダ、 ... を提供します。
欲しい pompei DNSmasqを実行して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 Serversymfony.local
がホストされているところを尋ねるでしょう、そしてそれがDNSサーバーから答えを受け取ったらすぐにそれを送ります適切HTTPリクエスト to pompei 192.168.1.5
にあります。
私はあなたにこれで遊ばせて乗り心地を楽しませます。これらの2つのステップは主要なガイドラインです、従ってこれが初めてそれをする場合デバッグし、数時間を費やす必要があります。これがもう少し高度なネットワーキングだとしましょう、プライマリDNSサーバー、セカンダリDNSサーバー、 etc。 があります。がんばろう!
同じワイヤレスでインターネット経由の両方のラップトップでテストするには、 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
ファイアウォールが原因で、ローカルホストのWebサーバーへのアクセスが妨げられている可能性があります。
必要に応じて、コンピュータのインターネットセキュリティとウイルス対策ネットワークの両方のセキュリティのIPアドレスを安全なIPアドレスとして設定します。
あなたのWindows PCのIPアドレスを見つける方法:スタート>(ファイル名を指定して実行)を入力してください:cmd(Enter)
(これにより、ブラックボックスコマンドのプロンプトが開きます)
ipconfigと入力(入力)
あなたのApacheまたはIIS WebサーバがあなたのPCにインストールされているとしましょう:192.168.0.3
そしてあなたはあなたのラップトップであなたのウェブサーバーにアクセスしたいです。 (ノートパソコンのIPアドレスは192.168.0.5です)
あなたのPC上であなたのウェブサーバー上のあなたのデータにアクセスするためにあなたのFirefoxまたはインターネットEplorerブラウザの内側にhttp:// localhost /をタイプしてください。
あなたのラップトップ上であなたはあなたのPC上のあなたのウェブサーバーにアクセスするためにhttp://192.168.0.3/とタイプします。
これらすべてがうまくいくためには、Webサーバーを正しくインストールしておく必要があります(例:IIS、Apache、XAMP、WAMPなど)。
それでもうまくいかない場合は、ラップトップからPCにpingを試してください。
あなたのラップトップ上でコマンドpropmtを開きます。Start> cmd(Enter)
ping 192.168.1.3(入力)
pingが失敗した場合は、ファイアウォールが接続をブロックしているか、ネットワークのケーブル接続に問題があります。モデムまたはネットワークスイッチとコンピュータを再起動してください。
自分のportsを使用しているチャットプログラムなどのプログラムを閉じます。
別のポート番号を試すこともできます:http:192.168.0.3:80またはhttp:192.168.0.3:81、または末尾に任意の乱数
上記の手順を実行した後も、他のデバイスからlocalhostにアクセスできない場合の注意点です。これは、Apacheのports.confがローカル(127.0.0.1)で機能するように設定されていて、外部では機能しないことが原因の可能性があります。
以下を確認してください(ubuntu Apache2の場合)。
$ cat /etc/Apache2/ports.conf
以下が設定されている場合
NameVirtualHost *:80
Listen 127.0.0.1:80
それからデフォルト値に戻します
NameVirtualHost *:80
Listen 80
Windowsを使用している場合は、ipconfigを使用してローカルIPv4アドレスを取得してから、Apache構成ファイルの下にそれを指定します。httpd.conf、次のようになります。
Listen: 10.20.30.40:80
Apacheサーバーを再起動して、ネットワーク上の他のコンピューターからテストします。