Доступ к localhost (xampp) с другого компьютера по локальной сети - как?

116

Я только что создал домашнюю сеть Wi-Fi. У меня есть все мои файлы на моем настольном компьютере (192.168.1.56) и вы хотите получить доступ к локальному хосту там с другого компьютера (192.168.1.2).

На моем рабочем столе я могу получить доступ к localhost через обычный http://localhost. Apache работает на порту 80, как обычно.

Что я должен сделать, чтобы добиться этого? В сети есть документация, но они либо не работают, либо слишком фрагментированы и запутываются, чтобы понять.

Я думаю, что мне нужно внести изменения в файл apache httpd.conf и файл hosts. Любые идеи относительно того, какие изменения вносить?

  • 2
    Люди, находящие этот вопрос, могут быть заинтересованы в том, как подключиться к этому локальному хосту с другого компьютера в той же сети? ,
  • 1
    Вот что я сделал и работал для меня на Windows 10: зайдите в cmd и введите ipconfig, затем найдите ваш адрес ipv4 и переименуйте URL вашего сайта в этот ip, например: 192.168.0.2/example . Затем найдите в Windows «Разрешить приложение через брандмауэр Windows», нажмите на него, затем нажмите «Изменить настройки» и убедитесь, что на сервере http apache установлен флажок. Надеюсь, поможет
Теги:
xampp
localhost
httpd.conf
remote-debugging

20 ответов

86
Лучший ответ

Локальный хост - это просто имя, указанное для петлевого цикла, например, это похоже на себя как "я".

Чтобы просмотреть его с других компьютеров, скорее всего, нужно http://192.168.1.56 или http://myPcsName, если это не работает, есть вероятность, что на вашем компьютере установлен брандмауэр, или httpd.conf только прослушивает 127.0.0.1

  • 0
    httpd.conf: Слушай 80, если мне нужно что-то изменить, что бы ты порекомендовал?
  • 1
    Это только говорит, слушают на порте 80, скорее всего, его уже слушают. netstat -a, ищите элементы на порту 80, он скажет вам, какие IP-адреса он прослушивает
Показать ещё 11 комментариев
39

Спасибо за подробное объяснение.

Только для разработки, в Windows, перейдите в Панель управления → Брандмауэр, в исключениях добавьте http и порт 80. Затем в разделе "Сервис" отметьте "http (порт веб-сервера 80)" и "https (порт веб-сервера 443)" ТОЛЬКО, если вам также нужно https. Хорошо, ОК, Закрыть

Затем перейдите на любой компьютер в сети и введите http://computer-name (где вы меняете брандмауэр и на нем работает xampp) в вашем веб-браузер и счастливые дни:)

  • 4
    только что добавил HTTP и порт 80 в Firewall, сейчас работает
  • 6
    Я зашел в Панель управления> Брандмауэр Windows> Разрешить приложение через брандмауэр Windows> Разрешить другое приложение> Перейти к: XAMPP / apache / bin / httpd.exe и разрешил его. Это работает сейчас!
Показать ещё 2 комментария
16

Это следующие шаги, которые необходимо выполнить, если вы хотите, чтобы ваше приложение PHP было установлено на LAN-сервере (а не в Интернете).

  • Получить внутренний IP-адрес или статический IP-адрес сервера (пример: 192.168.1.193)
  • Открыть файл XAMPP > apache > conf > httpd.conf в блокноте
  • Поиск прослушивания 80
  • Над строкой будет читаться как -Listen 0.0.0.0:80/12.34.56.78:80
  • Измените IP-адрес и замените его на статический IP
  • Сохраните файл httpd.conf, указав, что сервер указывает на #Listen 192.168.1.193:80
  • В корне config.php приложения (соединение db) замените localhost на IP-адрес сервера

Примечание: Если брандмауэр установлен, убедитесь, что вы добавили http-порт 80 и 8080 в исключения и разрешили прослушивать. Перейдите в Панель управления > Брандмауэр Windows > Разрешить программе общаться через брандмауэр Windows > Добавить другую программу Имя: http Порт: 80 Добавьте еще один как http-8080

Если IIS (Microsoft.Net Application Internet Information Server) установлен с любым Microsoft.Net-приложением уже на сервере, то он уже занял бы 80 портов. В этом случае измените #Listen 192.168.1.193:80 на #Listen 192.168.1.193:8080

Надеюсь, это поможет!:)

  • 1
    Мне нужно решение с IIS, но оно не работает
  • 0
    Это решило это для меня. Качественный товар! Я всегда удалял # перед локальным IP-адресом, и он не работал, когда я включил хэш комментария # он работал из коробки без перезапуска гостевой виртуальной машины, только служба Apache XAMPP и грохнул его там. Хороший. Теперь, как мне получить ссылку на мой назначенный VirutalHosts на хост-компьютере?
Показать ещё 2 комментария
15

это очень легко

  1. Перейти к панели управления XAMPP
  2. Нажмите на apache> config> Apache (httpd.conf) Изображение 6198
  3. Найдите " Listen 80" и замените " Listen 8080".
  4. После этого проверьте ваш локальный ip с помощью команды ipconfig (консоль cmd)
  5. Найдите ServerName localhost: 80 и замените его локальным IP- адресом: 8080 (ex.192.168.1.156: 8080)
  6. После этого откройте apache> config> Apache (httpd-xampp.conf) Изображение 6199
  7. Искать псевдоним /phpmyadmin "C: /xampp/phpMyAdmin/" AllowOverride AuthConfig Требовать локальный Заменить Требовать все предоставленные ErrorDocument 403/error/XAMPP_FORBIDDEN.html.var
  8. Перейдите в xampp> config>, нажмите на сервис и настройку порта и измените apache port 8080
  9. перезапустите xampp
  10. затем нажмите ваш ip: 8080 (ex.192.168.1.156: 8080) с другого компьютера
  • 1
    Это работает как шарм! Спасибо чувак
  • 0
    если вместо всех гранулированных ... просто статический IP. как бы это было?
6

Это должно быть все, что вам нужно для базовой установки

Такая конфигурация не прерывает phpMyAdmin на localhost

Рекомендуется использовать статический IP-адрес на устройстве, на котором запущен сервер

В этом примере используется IP-адрес 192.168.1.x. В конфигурации вашей сети может использоваться другой IP

В httpd.conf в Apache вы должны иметь:

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to 
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 80

Я бы оставил пустое имя, чтобы оно получило значения по умолчанию:

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#

Разрешить гостевые машины и самостоятельно. В качестве предупреждения о безопасности вы можете избежать Разрешить от всех, но вместо этого использовать конкретный гостевой IP, например Allow from 192.168.1.xxx, где xxx - это гостевой компьютер IP. В этом случае вам может потребоваться рассмотреть статические IP-адреса на гостевых машинах также

# Controls who can get stuff from this server.
#
#    Require all granted
#   onlineoffline tag - don't remove
     Order Deny,Allow
#     Deny from all
     Allow from all 
     Allow from 127.0.0.1
     Allow from ::1
     Allow from localhost
     Allow from 192.168.1.*YOURguestIP*
     Allow from 192.168.1.*YOURselfIP*
</Directory>

Перезагрузите все службы и нажмите "Поставить в сети" из значка в трее.

5

Иногда ваш брандмауэр может быть проблемой. Убедитесь, что вы отключили мониторинг антивирусного брандмауэра. Это сработало для меня.

4

Перейдите в xampp-control в панели задач

xampp-control -> Apache --> Config --> httpd.conf

Блокнот откроется с конфигурационным файлом

Поиск

Слушайте 80

В одной строке над ней будет что-то вроде этого: 12.34.56: 80

Измените его

12.34.56:80 --> <your_ip_address eg:192.168.1.5>:80

Перезапустите службу apache и проверьте ее, Надеюсь, он должен работать...

4

Если вы используете XAMPP 1.8.3 Перейдите в файл httpd-xampp.conf и выполните поиск "    #     # Новая концепция безопасности XAMPP     #               статус сервера | Сервер-инфо))" >

     Require local
     ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
     </LocationMatch>

"

Отрежьте этот код и сохраните его где-нибудь для последующего использования. Вернемся к этой функции (помните, что удаление этого кода делает ваш компьютер уязвимым). Сохраните изменения на httpd-xampp.conf, перезапустите службы на XAMPP и запустите его.

  • 0
    Для XAMPP версии 7 «Require local» находится в файле apache / conf / extra / httpd-vhosts.conf
3

Этот инструмент меня очень сильно сэкономил, так как у меня нет прав администратора на моей машине и уже установлены узлы. По какой-то причине конфигурация в моей сети не дает мне доступа к другим машинам, просто указывая 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

http://www.browsersync.io/docs/command-line/

3

Если вы подключены к сети Wi-Fi, это намного проще. Просто найдите Ip, в котором вы подключились к Wi-Fi. Например:

ваш-ip - "10.10.55.67".

Затем запустите сервер xampp на вашем компьютере.

Затем на любом другом компьютере, подключенном к тому же Wi-Fi n/w, введите

http://your-ip

Например: http://10.10.55.67

2

Сначала перейдите в раздел "Сеть и общий доступ к вашему компьютеру". Просто выполните несколько шагов, чтобы получить свой IPv4-адрес. Изображение 6200

Поместите адрес IPv4 в другой браузер. Например, HTTP//192.168.0.102

Примечание

  • Поворот брандмауэра Windows (если он не работает, в противном случае его необязательный)
2

После того, как вы установили конфиги appache, как описано в других ответах на этой странице, вам может потребоваться также открыть TCP-порты через ваш брандмауэр, как описано здесь:

https://superuser.com/questions/569227/xampp-is-not-accessible-from-other-computer-through-lan-when-firewall-is-enable

1

Вот что я сделал и работал у меня на окнах 10:

1) Нажмите windows + r и введите cmd. В командной строке введите ipconfig
2) найдите адрес ipv4 и переименуйте URL-адрес своего веб-сайта, например: http://192.168.0.2/example.
3) Теперь убедитесь, что ваш брандмауэр имеет доступ к HTTP-серверу Apache. Окна поиска для " Разрешить приложение через брандмауэр Windows" нажмите на него, затем в правом верхнем правом углу щелкните изменить настройки и убедитесь, что HTTP-сервер Apache имеет один галочку слева и один на частном или общественном. Надеюсь, что это поможет.

Теперь вы можете получить доступ к веб-сайту с других компьютеров в LAN

0

Доступ к localhost с удаленного устройства

Условие: Ваш сайт в настоящее время находится на http://localhost: 8081/ с таким инструментом, как live-сервер.

а) Публикация в той же сети

В той же сети вы можете получить доступ к вашему компьютеру с вашим текущим IP-адресом или именем хоста. Вы можете найти IP-адрес с помощью ipconfig | grep IPv4 ipconfig | grep IPv4 или имя хоста, отправив ping -a на этот ip.

http://192.128.1.18:80/
http://hostname:80/

Примечание. Для достижения наилучших результатов используйте порт 80, подключитесь к частной сети и проверьте настройки брандмауэра.

б) Публикация в любой сети (проще)

  1. Опция 1 - вы можете использовать ngrok для переадресации портов через общедоступные порты ngrok

    Скачайте ngrok и выполните следующую команду:

    $ ./ngrok http 8081
    

    Изображение 6201

  2. Опция 2 - Вы можете использовать localhost.run для создания туннеля ssh с помощью следующей команды:

    ssh -R 80:localhost:8081 kylemit@ssh.localhost.run
    

    Изображение 6202


Доступ к удаленному устройству из Local Dev Tools

Чтобы подключить инструменты разработчика браузера к подключенному устройству, следуйте инструкциям в разделе " Начало работы с удаленной отладкой устройств Android".

  1. На вашем телефоне включите "Параметры разработчика" и "Отладка по USB"
  2. Подключите телефон к компьютеру через USB и установите протокол (не для передачи файлов/мультимедиа)
  3. Откройте Dev Tools> Дополнительные инструменты> Удаленная отладка (попробуйте здесь, если устройство не обнаружено)

    Изображение 6203

  4. Найдите свой сайт и нажмите "Проверить", чтобы открыть новое окно инспектора.

    Изображение 6204


Дальнейшее чтение:

0

У меня была эта проблема. Я использовал XAMPP на виртуальной машине с сетевыми настройками как "NAT". Я изменил его на "Bridged", и проблема была решена.

0

Заменить Require Local с Require all granted в xampp\apache\conf\extra\httpd-xampp.conf файле.

0
<Files ".ht*">
 Require all denied
</Files>

 replace to

<Files ".ht*">
 Require local
</Files>
  • 0
    <Files ".ht *"> Требовать локального #Require all denied </ Files>
  • 3
    Добро пожаловать в переполнение стека! Хотя этот фрагмент кода может решить вопрос, в том числе объяснение действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин, по которым вы предлагаете код. Также постарайтесь не переполнять ваш код пояснительными комментариями, это снижает удобочитаемость кода и пояснений!
0

Сначала вы перейдете в командную строку и введите

Notepad C:/windows/system32/drivers/etc/hosts

затем добавьте свой адрес ip ниже URL-адреса вашего сайта.

Затем вы перейдете в командную строку и введите notepad c:/xampp/bin/apache/apache2.4.18/conf/extra/httpd-vhosts.conf

затем добавьте это ниже

documentroot "Directory of your site"
Allow from all
Require all granted
-1

Поэтому я пытался решить аналогичную проблему с подключением к совершенно другому серверу в своей локальной сети, чтобы при прерывании и восстановлении питания мой сервер возвращался в оперативный режим, а другие системы могли по-прежнему иметь связь с автоматизацией. Однако моя проблема заключалась в том, что DHCP иногда давал моему серверу разный IP-адрес. Эта тема ответила на мою проблему с NAMESERVER, которая изначально есть в Windows. Я подключался напрямую к своим серверам IP add http://192.168.1.5 через командный файл для инициализации соединения, но при возникновении проблем с питанием он не мог подключиться. Я изменил файл .bat так, чтобы он указывал на http://DESKTOP-actualnamewhereserver: port, и готово. Задача решена. Если я не изменю имена своих компьютеров, тогда, когда DHCP передает серверу DESKTOP-actualnamewhere новый IP-адрес, он все равно будет идентифицировать свое собственное имя в локальной сети и, следовательно, сможет принимать соединение независимо от его IP-адреса. Просто дайте другим людям в вашей беспроводной локальной сети имя вашего компьютера, на котором размещен сервер Apache, и предположим, что его имя - DESKTOP-DOUGHFACTORYHUT, они будут вводить http://DOUGHFACTORYHUT: 80 или любой другой номер порта, на котором ваша конфигурация apache установлена для размещения, например LOCALHOST: 80, которые по сути совпадают с вашим локальным динамическим IP-адресом, назначенным DHCP или STATIC IP, который вы задали серверу.

-2

Я полностью согласен с BugFinder.

В простых словах просто поместите ip-адрес 192.168.1.56 в свой браузер, работающий на 192.168.1.2!

если он не работает, тогда возможны следующие причины:

  • Проблема с сетевым подключением:

    • Прежде всего, проверьте подключение к сети с помощью команды ping 192.168.1.56 в командной строке/терминале на компьютере 192.168.1.2.
  • Проблема межсетевого экрана: У вашего брандмауэра Windows нет разрешения для XAMPP (apache). (Наиболее вероятная проблема)

    • (раствор) перейдите к расширенным настройкам брандмауэра и добавьте входящие и исходящие правила для исполняемого файла Apache.
  • Проблема конфигурации Apache.: Ваш apache настроен на прослушивание только локальных запросов.

    • (решение) вы можете это, открыв файл httpd.conf и заменив Слушайте 127.0.0.1:80 для прослушивания 80 или * Слушайте: 80
  • Конфликт портов с другими серверами (IIS и т.д.)

    • (Решение) Отключите сервер Apache, а затем откройте локальный хост в браузере. если какой-либо ответ будет получен, тогда отключите этот сервер, а затем запустите Apache.

если все вышеописанное не работает, возможно, на вашем apache server.try есть некоторая проблема с конфигурацией, чтобы найти ее, иначе просто переустановите ее и перенесите все php файлы (htdocs) в новую установку XAMPP/WAMP.

  • 1
    Прежде всего, этому посту 5 лет, поэтому этот ответ, вероятно, не будет полезен для ОП. Во-вторых, вы можете использовать Markdown, чтобы улучшить форматирование вашего ответа, чтобы сделать его более читабельным и понятным. Поверьте мне, это приятно знать. :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню