tropic писал(а): ↑12 янв 2016, 23:07
Инструкция предназначена для новичков (типа меня

), дабы не допекали элементарными вопросами создателя OpenServer.
Если у вас в процессе настройки появилась непонятная ошибка - рекомендую следующий алгоритм поиска решения:
1) внимательно прочитать сообщение об ошибке (если есть). Попытаться понять, что это означает. )
2) прочитать соответствующие разделы в руководстве OpenServer
тут и
тут, если еще не прочитали.
3) поискать ответ здесь на форуме
4) спросить у яндекса, гугла
5) задать вопрос здесь на форуме
Итак, поехали.
1) Посмотреть, какой ip роутер выдал компьютеру, на котором установлен OpenServer.
На примере роутера TP-Link:
router1.jpg
Не уверен, что это нужно, но я на всякий случай привязал этот компьютер к ip по MAC адресу, чтобы роутер всегда выдавал ему этот ip.
router2.jpg
2) В настройках OpenServer на вкладке Сервер указываем этот ip.
Перед тем, как сохранять изменения и перезапускать сервер - нужно в папке с доменами удалить или переименовать папку localhost, т.к. этот домен может быть запущен только на localhost (ip 127.0.0.1) и OpenServer не будет запускаться с этим доменом и другим ip.
OpenServer_ip.jpg
localhost.jpg
3) В сетевом окружении выставьте ip компьютера, как предпочитаемый DNS сервер, а ваш стандартный ip роутера, как альтернативный DNS сервер.
Эти же ip нужно будет указать в таком порядке на других устройствах, с которых хотите заходить на ваши сайты. На андройде и iOS сервера DNS указываются в свойствах wi-fi подключения (кто не знает - спросите у яндекса, как).
Network_1.jpg
Network_2.jpg
Network_3.jpg
Network_4.jpg
4) На компьютере с OpenServer и на всех компьютерах, телефонах, планшетах с которых хотите заходить по wi-fi на ваши сайты, нужно вписать в файл hosts ваш ip (компа, на котором стоит OpenServer) и название сайта. Тогда при обращении к этим сайтам браузер будет лезть не в интернет, а искать его в локальной сети по указанному ip.
Вписываеся ip следующим образом:
192.168.1.100 newsite.test
192.168.1.100 backend.newsite.test
192.168.1.100 localhost.tmp
Подробности о том, где лежит файл hosts на разных устройствах - спрашивайте у яндекса.
Для редактирования файла host на Android аппарат должен быть рутован, а на iOS нужен джейлбрейк. Если на ваших аппаратах такого нет - читайте ниже про доступ к сайтам по ip.
4) Если на компьютере с OpenServer установлен файрвол/брандмауэр - то нужно открыть используемый вами порт (обычно 80) для ваших устройств, с которых будете заходить на ваши сайты. Если не знаете как - яндекс в помощь.
Пример для NOD32 Smart Security:
NOD_1.jpg
NOD_2.jpg
NOD_3.jpg
NOD_4.jpg
NOD_5.jpg
NOD_6.jpg
После этих шагов по идее вы уже можете заходить с других устройств на ваши сайты по wi-fi.
Если нет возможности редактировать файл hosts на планшетах и телефонах.
Если у вас один сайт - в настройках OpenServer создайте алиас для него по ip:
alias.jpg
При вводе в браузере этого ip будет открываться ваш сайт.
Пока не разбирался, как сделать доступ сразу к нескольким своим сайтам по ip. Думаю, что где-нибудь на форуме можно найти ответ на этот вопрос.
Возможные проблемы и их решения:
1) После указания нового ip в настройках сервера и перезапуска - на сайте вываливаются ошибки MySQL.
Решение: изменить ip в настройках сайта для доступа к базе данных с localhost (или 127.0.0.1) на ваш новый ip.
(скорее всего с другими источниками данных будет такое же решение)
2) На некоторых своих устройствах я не могу редактировать файл hosts. Поэтому приходится использовать доступ по ip.
Столкнулся с проблемой, что не работает созданный алиас.
При вводе в браузере ip сайта - открывается пустая страница (статус при этом 200).
Для простых сайтов алиас работает. Проблема возникает только, когда я делаю алиас для сайта с поддоменом (фреймворк Yii2, шаблон advance).
Как это правильно решить я не знаю.
Как временное решение я использую следующее.
В папке с сайтом на который я хочу заходить у меня лежит файл настройки виртуального хоста Apache.
там в пункте ServerAlias я просто прописал ip OpenServer:
#-----------------------------------------------#
# Начало блока конфигурации HTTP хоста
#-----------------------------------------------#
<VirtualHost *:%httpport%>
RewriteEngine on
DocumentRoot "%hostdir%/frontend/web"
ServerName "%host%"
ServerAlias "192.168.1.100"
ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/"
</VirtualHost>
#-----------------------------------------------#
# Конец блока конфигурации HTTP хоста
#-----------------------------------------------#
#-----------------------------------------------#
# Начало блока конфигурации HTTPS хоста
#-----------------------------------------------#
<VirtualHost *:%httpsport%>
RewriteEngine on
DocumentRoot "%hostdir%/frontend/web"
ServerName "%host%"
ServerAlias "192.168.1.100"
ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/"
SSLEngine on
SetEnvIf User-Agent ".*MSIE [1-5].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [6-9].*" \
ssl-unclean-shutdown
</VirtualHost>
#-----------------------------------------------#
# Конец блока конфигурации HTTPS хоста
#-----------------------------------------------#
При такой настройке когда я ввожу на других устройствах ip сервера - открывается мой сайт.
Но доступа к другим сайтам нет.
На данный момент мне такое решение подходит, но я понимаю что это временное решение и буду благодарен, если кто-нибудь подскажет как правильно настраивать алиасы для сайтов с поддоменами.
3) Сайт начинает глючить (при заходе на него по ip).
Проверьте, что в создаваемых сайтом куки домен указан в виде ip, по которому вы открываете сайт.
The end.
PS: Замечания об ошибках в инструкции, а также уточнения и подсказки по возможным проблемам и их решению приветствуются.