Зараз я працюю над проектом, і я хотів би перевірити його на двох ноутбуках вдома, де один ноутбук підключається до localhost, а інший. Я використовую XAMPP. Як це зробити?
Зараз я працюю над проектом, і я хотів би перевірити його на двох ноутбуках вдома, де один ноутбук підключається до localhost, а інший. Я використовую XAMPP. Як це зробити?
Відповіді:
Це однозначно можливо. Ми візьмемо тут загальний випадок з Apache.
Скажімо, ви великий шанувальник Symfony2, і ви хочете отримати доступ до свого веб-сайту symfony на http://symfony.local/
чотирьох різних комп’ютерах (головний з яких розміщує ваш веб-сайт, а також Mac, Windows та дистрибутив Linux, підключений до бездротового зв'язку чи без нього) основний комп'ютер.
1 Налаштування віртуального хоста :
Спочатку потрібно встановити віртуальний хост у httpd-vhosts.conf
файлі apache . На XAMP , ви можете знайти цей файл тут: C:\xampp\apache\conf\extra\httpd-vhosts.conf
. На MAMP , ви можете знайти цей файл тут: Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
. Цей крок готує веб-сервер на вашому комп'ютері для обробки symfony.local
запитів. Потрібно вказати ім'я Віртуального хоста, а також кореневу / головну папку вашого веб-сайту. Для цього додайте наступний рядок в кінці цього файлу. Вам потрібно змінити те місце, DocumentRoot
де знаходиться ваша основна папка. Тут я взяв /Applications/MAMP/htdocs/Symfony/
корінь свого веб-сайту.
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Symfony/"
ServerName symfony.local
</VirtualHost>
2 Налаштуйте файл хостів :
Щоб клієнт (ваш браузер у такому випадку) зрозумів, що symfony.local
насправді означає, вам потрібно відредагувати файл хостів на своєму комп’ютері. Щоразу, коли ви вводите URL-адресу у своєму браузері, ваш комп'ютер намагається зрозуміти, що це означає! symfony.local
не означає нічого для комп'ютера. Тож воно спробує дозволити ім'я symfony.local
до IP-адреси. Зробимо це, спершу заглянувши у файл хостів на комп’ютері, щоб побачити, чи може він відповідати IP-адресі тому, що ви ввели в адресному рядку. Якщо він не може, він запитає DNS-сервери . Примітка тут полягає в тому, щоб додати наступне до файлу хостів.
/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
з іншого комп’ютера :
Ми нарешті доходимо до вашого головного питання, яке:
Як я можу зараз отримати доступ до свого веб-сайту через інший комп'ютер?
Ну це зараз просто! Нам просто потрібно розповісти іншим комп'ютерам, як вони могли їх знайти symfony.local
! Як ми це робимо?
3a Отримайте IP-адресу комп’ютера, на якому розміщено веб-сайт :
Спершу нам потрібно знати IP-адресу на комп’ютері, на якому розміщений веб-сайт (той, над яким ми працюємо з самого початку). У терміналі, на MAC і LINUX типу ifconfig |grep inet
, по WINDOWS
типу ipconfig
. Припустимо, IP-адреса цього комп’ютера 192.168.1.5 .
3b Відредагуйте файл хостів на комп’ютері, з якого ви намагаєтесь отримати доступ до веб-сайту. :
Знову ж таки, на 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
щоб красиво бачити свій веб-сайт на різних комп’ютерах! Зауважте, що ви можете застосувати ту саму стратегію, якщо ви користуєтесь OSX для тестування свого веб-сайту в Internet Explorer через Virtual Box (якщо ви не хочете використовувати комп'ютер Windows). Це чудово пояснено у розробці тестового середовища для Windows / IE на OSX .
Вам може бути цікаво, як отримати доступ до свого веб-сайту localhost з мобільного пристрою. У деяких випадках ви не зможете модифікувати файл хостів (iPhone, iPad ...) на своєму пристрої (виключення джейлбрейка).
Ну, тоді рішення - встановити проксі-сервер на машині, на якій розміщується веб-сайт, і підключитися до цього проксі з вашого iphone. Це насправді дуже добре пояснено в наступних дописах і налаштовувати не так довго:
На Mac я б рекомендував: Тестування веб-сайту Mac OS X за допомогою локального імені хоста на мобільному пристрої : Використання SquidMan як проксі. Це 100% безкоштовне рішення. Деякі люди також можуть використовувати Чарльза як проксі-сервер, але це 50 $.
В Linux ви можете адаптувати Mac OS вище, використовуючи Squid як проксі-сервер.
У Windows це можна зробити за допомогою Fiddler . Рішення описано в наступному дописі: Моніторинг трафіку iPhone за допомогою Fiddler
@Dre. Будь-який можливий спосіб отримати доступ до веб-сайту з іншого комп’ютера, не редагуючи файл хосту вручну? скажімо, у мене є 100 комп'ютерів, які хочуть отримати доступ до веб-сайту
Це цікаве питання, і оскільки воно пов'язане з питанням про ОП, дозвольте мені допомогти.
Вам потрібно буде змінити свою мережу, щоб кожна машина знала, де розміщується ваш веб-сайт. Більшість повсякденних маршрутизаторів цього не роблять, тому вам доведеться запускати власний сервер DNS у вашій мережі.
Зробимо вигляд, що у вас є маршрутизатор (192.168.1.1). Цей маршрутизатор має DHCP-сервер і виділяє IP-адреси 100 машинам у мережі.
Скажімо, у вас в тій самій мережі, як і вище, машина, на 192.168.1.5
якій є ваш веб-сайт. Ми назвемо цю машину pompei.
$ echo $HOSTNAME
pompei
Те ж саме , як і раніше, що машина pompeiв 192.168.1.5
запускає HTTP сервер , який обслуговує ваш сайт symfony.local
.
Для того, щоб кожна машина знала, що symfony.local
розміщено на pompeiсервері, тепер нам знадобиться спеціальний сервер DNS у мережі, який знає, де symfony.local
розміщено. Потім пристрої в мережі зможуть вирішувати доменні імена, які обслуговуються pompeiвнутрішньо.
Step 1: DNS Server
Налаштування сервера DNS у вашій мережі. Давайте ввімкнемо це pompeiдля зручності та використаємо щось на зразок dnsmasq .
Dnsmasq надає системи доменних імен (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
.
* Примітка: * ЗАВЖДИ перезавантажте DNSmasq, якщо зміна файлу / etc / hosts, оскільки жодні зміни не набудуть чинності в іншому випадку.
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
файл вручну? скажімо, у мене є 100 комп’ютерів, які хочуть зайти на веб-сайт
Для тестування на обох ноутбуках в одному і тому ж бездротовому мережі та в Інтернеті ви можете скористатися такою послугою, як http://localhost.run/ або https://ngrok.com/
За умови, що обидві машини знаходяться в одній робочій групі, відкрийте cmd.exe
на машині, до якої потрібно підключитися, введіть ipconfig
та відзначте IP-адресу на IPv4 Address
лінії.
Потім на машині, з якою ви хочете підключитися, використовуйте 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
але нічого не бачу. Я думаю, є щось більше, що я повинен надати.
можливо, ваші брандмауери заважають вам отримати доступ до веб-сервера localhost.
Якщо потрібно, поставте IP-адреси обох комп'ютерних мереж безпеки антивірусу вашого комп'ютера як безпечні IP-адреси.
Як знайти IP-адресу ПК на Windows: Пуск> (Запуск) введіть: cmd (Введіть)
(Це відкриває командний рядок чорного поля)
введіть в ipconfig (Enter)
Скажімо, ваш веб-сервер Apache або IIS встановлений на вашому ПК : 192.168.0.3,
і ви хочете отримати доступ до свого веб-сервера за допомогою свого ноутбука. (IP-
код ноутбука 192.168.0.5) На ПК ви вводите: http: // localhost / всередині браузера Firefox або Internet Eplorer, щоб отримати доступ до даних на своєму веб-сервері.
На своєму ноутбуку ви вводите http://192.168.0.3/, щоб отримати доступ до свого веб-сервера на своєму ПК.
Щоб усі ці речі працювали, вам потрібно правильно встановити веб-сервер (наприклад, IIS, Apache, XAMP, WAMP тощо).
Якщо це не спрацює, спробуйте надіслати на ПК свій ноутбук:
Відкрийте команду propmt на своєму ноутбуці: Пуск> cmd (Enter)
ping 192.168.1.3 (Enter)
Якщо пінгінг не працює, то брандмауери блокують ваше з'єднання або вашу мережу. кабель несправний. Перезавантажте свій модем або мережевий комутатор та свої машини.
Закрийте такі програми, як програми чату, які використовують ваші порти.
Ви також можете спробувати інший номер порту: 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