Как сделать локальный сайт доступным по сети

Статья Делаем локальный сайт (на localhost) доступным для других компьютеров

Эта статья для тех, у кого есть сайт на локальном сервере и кто хочет сделать его доступным с других компьютеров. Кстати, если у вас ещё нет локального сервера, то вы с лёгкостью его поставите по этой инструкции. Подразумевается, что ваш сервер установлен по указанной инструкции, если это не так, то файлы могут находится в других директориях.

  • внутри квартиры (всегда);
  • внутри локальной домашней сети (почти всегда);
  • для всех пользователей Интернета (не всегда).

Разница в вероятностях (всегда-иногда) заключается в вашем IP. Если он статический, то всё делается довольно легко. Как делать локальный сервер при динамическом IP в этой статье не описывается.

Внутри своей квартиры вы сами задаёте политику присвоения адресов — например, Wi-Fi роутер может раздавать устройствам произвольные, динамические IP адреса; и можно настроить роутер и устройства так, что всем им будут присвоены определённые статические адреса.

Домашние локальные сети, как правило, организовываются региональными провайдерами. Внутри этих сетей все пользователи, обычно, имеют два IP: один — локальный (статический, который пользователь вписывает при настройки комьпютера или сетевого оборудования) второй — динамический который присваивается при доступе в Интернет.

Локальные адреса, в основном, имеют такой вид (вместо нулей должны быть другие цифры):

Открываем файл C:ServerbinApache24confhttpd.conf и ищем там строчку

Сохраняем файл и перезапускаем сервер. На самом деле — всё!

Пробуем доступ к серверу набрав в строке браузера свой IP (я набираю http://192.168.43.90/ ), как и следовало ожидать — доступа нет, но причина очевидна: файервол. Его нужно настроить должным образом, но для нашего тестирования я его просто отключаю.

28467

Теперь всё впорядке и ваш сайт доступен по адресу http://192.168.43.90/ с любого устройства, находящегося в вашей домашней или городской сети. На следующем скриншоте, я зашёл на локальный сервер с телефона:

28468

24 часа в сутки

Если у вас статичный IP для интернет соединений (у некоторых Интернет провайдеров можно подключить эту услугу за отдельные деньги), то вы можете сделать из своего компьютера самый настоящий хостинг-сервер! Понятное дело, что компьютер должен быть включен 24 часа в сутки, иначе на ваш сайт невозможно будет попасть.

Внутри локальной (домашней) сети вы можете придумать имя своему сайту и попросить ваших друзей и всех тех, кто будет заходить на него внести изменения в файл
C:WindowsSystem32Driversetchosts
Каждому из них нужно будет добавить туда строчку:
ваш_IP ваш_сайт
например
192.168.43.90 alexblog.local
После этого набирая в адресной строке браузера http://alexblog.local они будут попадать на ваш сайт.

Зачем все эти сложности?

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

Более того, открывая доступ к своему localhost нужно подумать о безопасности. В данной статье я этот вопрос не затрагиваю, но могу вас заверить, что Apache, запущенный от имени администратора (а именно так он у большинства на локахосте и запущен), через скрипты PHP (или уязвимости в них), может «путешествовать» по каталогам дисков. Т.е., по крайне мере теоретически, злоумышленник через уязвимости в вашем сайте может скачать файлы с вашего компьютера или удалить файлы, например, в директории Windows. Если заботиться о безопасности локального сервера является слишком сложным занятием для вас, то ответ очевиден — хостинг. Самый полный «фарш», все «навороты», которые бывают на хостингах и самая низкая цена!

Размещаем сайт на домашнем роутере

Мне давно хотелось «потрогать руками» интернет-сервисы, настроив веб-сервер с нуля и выпустив его в Интернет. В этой статье хочу поделиться полученным опытом превращения домашнего роутера из узкофункционального устройства в практически полноценный сервер.

Началось всё с того, что служивший верой и правдой роутер TP-Link TL-WR1043ND перестал удовлетворять потребности домашней сети, захотелось 5ГГц диапазона и быстрого доступа к файлам на накопителе, подключенном к роутеру. Просмотрев профильные форумы (4pda, ixbt), сайты с отзывами и посмотрев на ассортимент местных магазинов — решил приобрести Keenetic Ultra.

В пользу именно этого устройства сработали хорошие отзывы владельцев:

  • отсутствие проблем с перегревом (тут пришлось отказаться от продукции Asus);
  • надежность в работе (тут вычеркнул TP-Link);
  • простота в настройке (побоялся не справиться и вычеркнул MikroTik).
  • нет WiFi6, хотелось взять оборудование с запасом на будущее;
  • 4 LAN порта, хотелось больше, но это уже не домашняя категория.

  • слева оптический терминал Ростелекома;
  • справа наш подопытный роутер;
  • проводом к роутеру подсоединен завалявшийся m.2 SSD на 128 ГБ, помещенный в коробку USB3 с алиэкспресса, сейчас он аккуратно закреплен на стенке;
  • на переднем плане удлинитель с независимым отключением розеток, провод от него идет к недорогому UPS;
  • на заднем плане пучок витой пары — на этапе ремонта квартиры сразу запланировал RJ45 розетки в местах предполагаемого размещения техники, чтобы не зависеть от замусоренности WiFi.

  • первичная настройка роутера занимает около 2 минут, указываем параметры подключения к провайдеру (у меня оптический терминал переключен в режим бриджа, PPPoE соединение поднимает роутер), название WiFi сети и пароль — в принципе всё, роутер запускается и работает.

Ставим переадресацию внешних портов на порты самого роутера в разделе «Сетевые правила — Переадресация»:

Теперь можно перейти к «продвинутой» части, чего я хотел от роутера:

  1. функционал небольшого NAS для домашней сети;
  2. выполнение функций веб-сервера для нескольких частных страничек;
  3. функционал персонального облака для доступа к личным данным из любой точки мира.
  • берем предназначенный для этой роли накопитель (флешку, карту памяти в картридере, жесткий диск или SSD во внешнем боксе и форматируем в Ext4 с помощью MiniTool Partition Wizard Free Edition (у меня нет компьютера с linux под рукой, там можно встроенными средствами). Как я понимаю, при работе система пишет на флешку только логи, поэтому, если их ограничить после настройки системы — можно использовать и карты памяти, если планируете много и часто писать на накопитель — лучше SSD или HDD.

После этого подключаем накопитель к роутеру и наблюдаем его на экране системного монитора

Переходим щелчком по «USB-диски и принтеры» в раздел «Приложения» и настраиваем общий ресурс в разделе «Сеть Windows»:

И у нас имеется сетевой ресурс, который можно использовать с компьютеров под Windows, подключив при необходимости как диск: net use y: \\192.168.1.1\SSD /persistent:yes

Скорость такого импровизированного NAS вполне достаточна для домашнего применения, по проводу он использует весь гигабит, по WiFi скорость составляет около 400-500 мегабит.

Настройка хранилища — один из необходимых шагов для настройки сервера, далее нам нужно:
— приобрести домен и статический IP адрес (можно обойтись и без этого, используя Dynamic DNS, но статический IP у меня уже был, поэтому проще оказалось воспользоваться бесплатными сервисами Яндекса — делегировав туда домен, мы получаем DNS-хостинг и почту на своем домене);

— настроить DNS сервера и добавить A-записи, указывающие на ваш IP:

Вступление в силу настроек делегирования домена и DNS занимает несколько часов, поэтому параллельно занимаемся настройкой роутера.

Для начала необходимо установить репозиторий Entware, из которого мы сможем ставить на роутер необходимые пакеты. Я воспользовался этой инструкцией, только не заливал установочный пакет по FTP, а создал папку прямо на подключенном ранее сетевом диске и скопировал туда файл обычным способом.

Получив доступ по SSH, меняем пароль командой passwd и ставим командой opkg install [имена пакетов] все нужные пакеты:

В ходе настройки на роутере оказались установлены следующие пакеты (результат вывода команды opkg list-installed):

Возможно, тут что-то лишнее затесалось, но места на накопителе много, поэтому разбираться не стал.

После установки пакетов настраиваем nginx, я пробовал с двумя доменами — на втором настроен https, и пока висит заглушка. 81 и 433 внутренние порты вместо 80 и 443 используются, поскольку на нормальных портах висят админки роутера.

Для того, чтобы сайт работал по https, воспользовался известным скриптом dehydrated, установив его по этой инструкции. Затруднений этот процесс не вызвал, запнулся только на том, что в тексте скрипта для работы на моем роутере надо закомментировать строчку в файле /opt/etc/ssl/openssl.cnf:

И отмечу, что генерация dhparams.pem командой «openssl dhparam -out dhparams.pem 2048» на моем роутере занимает больше 2 часов, если бы не индикатор прогресса — потерял бы терпение и перезагрузил.

После получения сертификатов перезапускаем nginx командой «/opt/etc/init.d/S80nginx restart». В принципе на этом настройка закончена, но сайта еще нет — если положим в каталог /share/nginx/html файл index.html, увидим заглушку.

Чтобы разместить информацию красиво, непрофессионалу типа меня проще воспользоваться готовыми шаблонами, после долгого перебора различных каталогов нашел templatemo.com — там неплохой выбор бесплатных шаблонов, не требующих обязательного указания авторства (что редкость в интернете, большая часть шаблонов в лицензии требуют сохранить ссылку на ресурс, откуда они получены).

Выбираем подходящий шаблон — там есть на самые разные случаи, скачиваем архив, и раcпаковываем его в каталог /share/nginx/html, делать это можно уже со своего компьютера, затем редактируем шаблон (тут потребуются минимальные знания HTML, чтобы не нарушить структуру) и заменяем графику, как показано на рисунке ниже.

Резюме: роутер вполне пригоден для размещения на нем легкого сайта, в принципе — если не предполагается большой нагрузки, можно поставить и php, и экспериментировать с более сложными проектами (смотрю на nextcloud/owncloud, вроде есть успешные установки на такое железо). Возможность установки пакетов поднимает его полезность — например, когда надо было защитить RDP порт ПК в локальной сети, поставил knockd на роутер — и проброс порта к ПК открывался только после port knocking.

Почему именно роутер, а не обычный PC? Роутер — одна из немногих компьютерных железяк, круглосуточно работающих во многих квартирах, домашний роутер обычно абсолютно бесшумен и легкий сайт с числом посещений в сутки меньше сотни его совершенно не напряжет.

Денвер в локальной сети. Локальный сайт на телефоне

Денвер на localhost

Web-программирование в наше время доступно далеко не только узким специалистам в их профессиональной деятельности. С этой сферой IT-индустрии часто сталкиваются и системные администраторы, и даже рядовые пользователи компьютеров, интересующиеся развитием интернет-технологий.
В статье Ошибка #1273 — Unknown collation: utf8mb4. Обновляем MySQL в Denwer мы говорили о переносе базы данных сайта с одного хостинга на другой, а также о переносе сайта на локальный компьютер. Сегодня мы поговорим о том, как открыть сайт, развёрнутый на компьютере, с другого компьютера и с телефонов в локальной сети.

Содержание статьи:

Доступ к Denwer из локальной сети

Перед всеми настройками, приведём несколько примеров, когда доступ к сайту из локальной сети может быть реально полезен:

  • сайт создан для корпоративных целей . То есть сайт служит исключительно для работы внутри офиса или здания организации/учреждения. В этом случае тратить деньги, пусть и не самые большие, на покупку доменного имени и хостинга не всегда рационально;
  • требуется отладка сайта в различных версиях операционных систем , будь то разные версии Windows, MacOS, Linux или другие, более экзотические ОС. Да, для тестирования сайта на других ОС достаточно воспользоваться виртуальной машиной, но это в том случае, если сайт уже загружен на хостинг, а вот на этапе подготовки и внесения значительных изменений в структуру и дизайн ресурса способ с доступом к сайту в локальной сети очень пригодится;
  • отладка сайта на мобильных устройствах . Некоторые шаблоны современных CMS могут вести себя достаточно непредсказуемо при открытии с мобильных аппаратов. Сегодня этим пренебрегать не стоит, так как поисковые системы всё лояльнее относится к оптимизированным под смартфоны ресурсам. Конечно, популярные браузеры имеют опцию, имитирующую отображение страницы на мобильном девайсе, но если вы проверите, то убедитесь, что работа некоторых меню сайта и отображения некоторых элементов в десктопном браузере всё равно будет отличаться от таковых на реальном мобильном гаджете.

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

Первые два этапа подготовки проводятся непосредственно на компьютере, где расположен сайт, то есть там, где установлен денвер. Это наш локальный сервер или, другими словами, хостинг , то есть хранилище, на котором расположены все файлы ресурса.

Для начала необходимо обеспечить доступность локального сервера в сети. Современные версии Денвера сами прописывают исключения в стандартный межсетевой экран операционной системы при установке.

Исключение Denwer в Брандмауэре Windows

Но в случае, когда основной компьютер оказывается недоступен из локальной сети, необходимо добавить входящие/исходящие подключения в исключения Брандмауэра.
Для начала добавляем порт доступа в исключения используемого вами Брандмауэра или Фаервола. По умолчанию денвером используется 80 порт .

Если после проделанных настроек компьютер всё равно будет не доступен с внешних устройств, то потребуется добавить ip-адреса внешних компьютеров и мобильных устройств локальной сети в исключения сетевого экрана.
О том, как узнать ip-адрес компьютера в локальной сети подробно можно почитать в статье Определение ip адреса и mac адреса компьютера в сети. Это всё, что нам нужно сделать на данном этапе.

Открытие сайта из Denwer по ip-адресу в локальной сети

Второй этап настройки. Теперь нам нужно сделать так, чтобы при подключении к ip-адресу нашего основного компьютера открывался нужный локальный сайт . Все нижеприведённые манипуляции подразумевают, что у нас уже установлен denwer, а локальный сайт доступен с основного компьютера.

Есть два способа открыть по ip-адресу компьютера нужный сайт .

Первый способ — это создать в папке home денвера каталог, именем которого сделать ip-адрес основного компьютера, например, 192.168.0.21 и уже в этом каталоге расположить папку www с файлами сайта. То есть путь до каталога, содержащего сайт будет следующим:

где X — это буква виртуального диска, созданного при установке Denwer;
192.168.0.21 — ip-адрес в локальной сети компьютера, на котором установлен Denwer.

Этот способ простой, но его минус заключается в том, что он работает на этапе создания локального сайта . Если таковой у вас уже развёрнут, то этот вариант не подходит.
Кроме того, при подобной настройке придётся открывать сайт исключительно по ip-адресу , а не по доменному имени.

Второй способ открытия сайта по ip-адресу в локальной сети — использование файла .htaccess

Подобный файл может быть уже расположен в папке www или public_html , нам же надо создать этот файл на одном уровне с данными папками ( www или public_html ), то есть в каталоге с названием доменного имени сайта. Для сайта miradmin.ru, предположим, путь до файла .htaccess будет следующим:

Содержимое файла будет таким (можно использовать и прочие настройки, но их обсуждение выходит за рамки данной публикации):

где 192.168.0.21 — ip-адрес в локальной сети компьютера, на котором установлен Denwer.
Если вам по каким-то причинам не удаётся создать подобный файл, вы можете скачать файл .htaccess из прикреплённого к статье архива: .htaccess

После перезапуска Денвера при переходе в браузере на ip главного компьютера будет открываться сайт, в каталоге которого расположен файл .htaccess

Открытие сайта по ip адресу в локальной сети

Открытие сайта из Denwer в локальной сети по домену

Основная цель достигнута, наш сайт доступен в локальной сети, однако, каждый раз набивать в адресной строке ip-адрес не очень удобно. Нужно сделать так, чтобы сайт в локальной сети открывался при переходе в адресной строке браузера по доменному имени.

Всё, что нам нужно сделать для этого — отредактировать должным образом файл hosts в клиентской операционной системе.

Итак, если на клиентском компьютере установлена операционная система Windows , то нам нужно открыть для редактирования в любом текстовом редакторе (Блокнот, Notepad++ и так далее) файл, расположенный по пути

В открывшемся редакторе добавляем новую строчку и вносим туда следующие записи:

где 192.168.0.21 — ip-адрес в локальной сети компьютера, на котором установлен Denwer;
miradmin.ru — адрес, при переходе по которому пользователь в локальной сети должен получать наш сайт.

ip адрес компьютера с Denwer в hosts файле пользовательской операционной системы

Если вам не удаётся сохранить внесённые изменения в файл hosts , то можно скопировать файл в любую пользовательскую папку ( Рабочий стол , Мои документы и так далее), отредактировать файл, сохранить изменения, а уже затем поместить файл hosts обратно в каталог etc , откуда файл и был скопирован.

Если же доступ в локальной сети необходимо обеспечить смартфону/планшету на базе Android , то аналогичную запись, приведённую выше, нужно добавить в файл hosts, который находится по следующему пути:

О том, как это сделать, подробно описано в статье Убираем рекламу на Android. Файл hosts
Если текстовым редактором изменить файл hosts на Андроид не удалось , то можно воспользоваться специальной утилитой, которая называется Hosts Editor, и предназначена конкретной для этой цели.

Пути расположения файла hosts для некоторых других операционных систем (взято из приведённой выше публикации):

В UNIX-подобных операционных системах типа Linux файл расположен в каталоге:

В последних версиях Mac OS X и iOS от Apple путь будет следующим:

Что надо знать при работе с Denwer в локальной сети

Настройки проведены, наш сайт доступен в локальной сети по доменному имени. Рассмотрим некоторые моменты, которые необходимо учитывать при работе с Денвером в локальной сети:

  • При корректной настройке сети локальный сайт будет открываться в ней независимо от того, каким образом произведено подключение устройства : по проводному каналу Ethernet или по беспроводному Wi-Fi. Это касается как главного компьютера, на котором сайт расположен, так и клиентских, подключаемых машин.
  • Если для доступа к сайту по доменному имени были внесены изменения в hosts файл, то после этого аналог сайта в интернете будет недоступен (если таковой существует на удалённом хостинге с аналогичным доменным именем). Для подключения к сайту, находящемуся на удалённом сервере через интернет потребуется либо удалить добавленную ранее строчку из файла hosts с доменом и ip-адресом основного компьютера, либо закомментировать её , просто поставив вначале строки символ решётки:
  • Если после добавления в файл hosts строк с доменом и ip в браузере всё равно отображается версия из интернета , откройте сайт в приватной вкладке (для некоторых браузеров — в режиме Инкогнито ). Также на компьютере можно провести обновление страницы нажатием сочетания клавиш Ctrl + F5, в этом случае вся страница заново скачается из сети , а не подгрузится из кэша браузера.
  • Если после всех настроек и добавления исключений в брандмауэр сайт всё ещё недоступен в локальной сети , нужно предоставить общий доступ к папке сайта в Денвер. В Windows это делается нажатием правой кнопки мыши по папке и переходом по пути Свойства — Доступ — Общий доступ и Расширенная настройка .
    Общий доступ к папке сайта в Denwer
  • И последнее, о чём хотелось бы сказать — это безопасность . Сразу отметим, что при корректной настройке и работе системы никаких проблем с безопасностью у вас не возникнет. Однако, следует понимать, что, давая доступ к сайт из сети, мы подвергаем его опасности подключения извне. При наличии бреши в системе безопасности компьютера злоумышленники могут даже получить возможность работы с данными за пределами каталогов Denwer.

На этом всё, мы рассмотрели, как открыть сайт из Денвер на компьютере и на смартфоне в локальной сети .

Форум

Сразу к делу!
версия Open Server 4.7.6
Прочитал мануал от корки до корки к текущей версии, перечитал все темы на данном форуме касающиеся моей проблемы. Ответа нет, тем масса, ответ всегда один -> мануал.

Так же прошу заметить, глубоких познаний в конфигурации сервера у меня нет, опираюсь на мануал «Open Server 4.7.6» и знания полученные при работе с «Denver(ом)»

Описание задачи:
Необходимо настроить доступ в локальной сети к домену(сайту), назовем его «local.mysite.ru»

Решение задачи:
идем в мануал: Работа с программой -> Внешний доступ
находим там строку:

далее нажимаем кнопку «Сохранить», «Open Server» просит перезапустить сервер, нажимаем «Ок».

Проблема 1
Сервер не запускается, идем в логи и видим:

Логично понять куда идти дальше, идем в мануал:
Другие материалы -> Решение проблем
Перебираем все возможные варианты решения проблемы, их 10, но не один из вариантов не подходит.
Идем за ответом на форум, перебрав кучу страниц находим
решение «Проблемы 1» :
Нужно папку «localhost» находящуюся в «D:\OpenServer_4.7.6\domains\localhost», переименовать например в «mylocalhost». Далее делаем «рестарт сервера», сервер запущен!
Прошу добавить данный аспект в мануал
—————————————————————————————

Далее необходимо как-то достукиваться до нашего домена «local.mysite.ru» с других устройств в локальной сети.

идем в мануал:
Работа с программой -> Внешний доступ

находим там строку:

Проблема 2
CMS не может подключиться к базе MySQL, эта проблема наблюдается после того как прописать в настройках сервера локальный IP адрес компьютера где стоит «Open Server 4.7.6»
Решение?

Проблема 3
Как я могу достучаться до сайта «local.mysite.ru» находящегося в локальной сети, например с планшета под управлением «Android» или «iOS»?
Работая с «Denver(ом)», достаточно было на любом устройстве, находящемся в локальной сети, ввести «http://192.168.1.33/local.mysite.ru». (это как рабочий пример).
Решение?

P. S. Пишу максимально развернуто, для общего понимания моих действий.

Проблема 1

Это, простите, ахтунг! Такое в мануал записывать? Ууууу нет. Вы увидели в логах, что домен localhost совместим только с ip 127.0.0.1 и после этого вы перечитывали мануал и насиловали форум. и. и не знали что делать.
Не понимаю. как можно не догадаться переименовать домен. Всякое бывает, может вы устали, тяжелый день, сразу не сообразили и т.д.

Это всё равно что идти по дороге, упереться в машину заехавшую на тротуар, и потом 3 часа стоя перед капотом машины читать интернет, википедию, форумы, чтобы понять что нужно просто обойти машину сбоку.

Это естественно, что открывается эта ошибка. Руководство пользователя до конца прочитать видимо не смогли. Я про тот же раздел о внешнем доступе. Почитайте. Может тогда узнаете, как сделать чтобы сайт открывался по IP.

Проблема 2

Там скорее всего у вас в настройках CMS прописан ip 127.0.0.1 в качестве адреса mysql сервера, вот оно и не может подключиться, ведь сервер на другом адресе запускается. Измените адрес как написано в руководстве.

Проблема 3
Тут два варианта. Либо нужно иметь root доступ на андроиде и обычным образом отредактировать HOSTS файл, либо нужно согласно руководства настроить доступ по ip, но в этом случае вы уже сможете открывать только один единственный сайт, который укажите при создании алиаса. Так что рекомендую первый способ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *