Windows apache virtual hosts

Создание виртуальных хостов на Apache

Данное руководство предназначено для использования в локальной среде тестирования на Windows. Инструкции подходят для Apache 2.4 и более поздних версий.

  1. Создайте вложенную папку внутри C:\vhosts для каждого виртуального хоста, который вы хотите добавить на сервер Apache.
  2. Откройте C:\WINDOWS\system32\drivers\etc\hosts в блокноте или в любом другом текстовом редакторе. Найдите следующую строку в нижней части документа:
  3. На отдельной пустой строке введите 127.0.0.1, затем поставьте пробел и введите имя виртуального хоста, который необходимо зарегистрировать. Например, чтобы создать виртуальный хост с именем mysite, введите следующую команду:
  4. Добавьте нужное количество дополнительных виртуальных хостов, каждый из которых должен быть введён на отдельной строке с указанием того же IP-адреса (127.0.0.1). Сохраните файл хостов, и закройте его.
  5. Откройте конфигурационный файл Apache, httpd.conf , в текстовом редакторе. Он находится в файлах Apache в папке conf . Если вы используете XAMPP, этот файл находится по адресу C:\xampp\apache\conf\httpd.conf . Прокрутите вниз до конца раздела Supplemental configuration и найдите следующий раздел (приблизительно около 500 строки):
  6. Сотрите # около начала второй строки, раздел теперь должен выглядеть так:
  7. Сохраните файл httpd.conf и закройте его.
  8. Откройте extra\httpd-vhosts.conf в блокноте или в любом другом текстовом редакторе. Если вы используете XAMPP, то адрес будет таким C:\xampp\apache\conf\extra\httpd-vhosts.conf . Главный раздел выглядит так:

В XAMPP все строки будут закомментированы. Вам нужно удалить # в начале строки, содержащей следующую директиву:

  • Переместите курсор в область пустого пространства, расположенного на 15 строке в предыдущем скриншоте, и вставьте туда следующие три строки кода: Это позволяет установить правильные разрешения для папки, содержащей сайты, которые нужно рассматривать в качестве виртуальных хостов.
  • На скриншоте в строках с 27 по 42 расположен код, который показывает примеры определения виртуальных хостов (в XAMPP они закоментированы). Там показаны все команды, которые могут быть использованы, но из них только DocumentRoot и ServerName являются обязательными.

    HackWare.ru

    Этичный хакинг и тестирование на проникновение, информационная безопасность

    Настройка Apache в Windows

    Подключение виртуальных хостов Apache в Windows

    Виртуальные хосты могут быть привязаны к имени хоста (например, study.loc), к IP (например, 127.0.0.3) и к порту (*:81). Второй и третий способ хороши тем, что нам не придётся решать вопрос о DNS преобразованиях имени нашего виртуального хоста (это, обычно, достигается изменением системного файла C:\Windows\System32\drivers\etc\hosts либо использованием личного DNS сервера с соответствующими записями).

    Рассмотрим все три способа. Но начнём с небольшой подготовки. Создадим каталог, в котором будем размещать наши виртуальные хосты. Например, C:\Server\data\htdocs\virthosts\. А в этом каталоге создадим три новых папки: host1, host2, host3. В каждой из них создайте по индексному файлу (index.html) с любым содержанием, который позволил бы идентифицировать, что вы попали в нужный хост. Я сделаю следующие записи в соответствующих индексных файлах хостов, для первого хоста:

    Теперь приступим к настройки виртуальных хостов.

    В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующую строку:

    В файле C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf закомментируйте (или удалите) те строки, которые приведены по умолчанию.

    Виртуальные хосты на основе IP

    Для виртуальных хостов, которые привязаны к IP, требуются несколько IP. Тем не менее, на своём локальном сервере вы можете проделать этот фокус, поскольку в IPv4, в 127.0.0.1 также отражается любой адрес в пределах от 127.0.0.0 до 127.255.255.255.

    Попробуйте набрать в браузере 127.0.0.1, а затем попробуйте 127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5 и т.д. Как видите, IP у нас много, и к каждому из них можно привязать виртуальных хост.

    Добавьте в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf следующие строки:

    Перезапустите веб-сервер (делайте перезапуск после каждого изменения файла настройки):

    А теперь откройте 127.0.0.2:

    При этом на другие IP 127.0.0.*, а также на localhost наши настройки влияние не оказывают.

    Виртуальные хосты на основе портов (разные сайты на разных портах)

    Теперь добавьте в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf строки:

    Порт можете заменить на любой другой, не занятый в вашей системе. Также вместо звёздочки можете указать конкретный IP. Перезапустите и откройте в браузере http://localhost:81:

    Виртуальные хосты на основе имени хоста

    Следующий способ требует редактирование файла C:\Windows\System32\drivers\etc\hosts (либо внесение записи в ваш собственный DNS сервер). Придумайте любое имя хоста, желательно, не совпадающее с реальным. Примеры supersite, study.loc, video.ofme. Я возьму в качестве примера study.loc. Откройте файл C:\Windows\System32\drivers\etc\hosts и добавьте туда:

    А в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf добавьте строки:

    Перезапустите сервер и перейдите в браузере к http://study.loc:

    Аналогично настраиваются и субдомены (dir1.study.loc, dir2.study.loc, dir3.localhost и т.п.).

    Автоматическое создание виртуальных хостов / субдоменов

    В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующую строку:

    А также, если вы не сделали этого ранее, строку:

    В директории C:\Server\data\htdocs\virthosts\ создайте папку localhost (теперь именно её содержимое будет отображаться, когда вы в браузере набираете http://localhost).

    В файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf добавьте следующую строку

    Теперь любая папка, созданная в C:\Server\data\htdocs\virthosts\ будет доступна по адресу вида

    При открытии http://host1.localhost мы увидим содержимое C:\Server\data\htdocs\virthosts\host1\, при открытии http://super.localhost увидим сайт в C:\Server\data\htdocs\virthosts\super\ и т.д.

    Обратите внимание на обозначение «%1» — оно значит первую часть имени, запрошенного виртуального хоста. То есть для запрошенного хоста super.localhost символы «%1» будут обозначать «super».

    Вместо «%1» вы можете указать «%0» — это означает полное имя, то есть для запрошенного хоста super.localhost символы «%0» будут обозначать super.localhost и, следовательно, будет искаться папка super.localhost, а не super (как это происходит при использовании %1).

    Помните, имена хостов вида *.localhost автоматически преобразуются в локальные IP адреса. Но если вы хотите использовать другие имена хостов, то укажите их в файле C:\Windows\System32\drivers\etc\hosts, чтобы компьютер понимал, какое имя какому IP адресу соответствует.

    Если в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf вместо предыдущей строки с «%1» добавить следующую:

    То теперь любая папка, созданная в C:\Server\data\htdocs\virthosts\ будет доступна по адресу вида http://имя_папки

    Обратите внимание, что теперь не учитывается .localhost. На самом деле, вы можете использовать и .localhost, просто создав папки «host1.localhost», «host2.localhost» и так далее.

    Как сделать резервную копию БД MySQL в Windows?

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

    Аналогично при бэкапе отдельных баз данных: перейдите на страницу интересующей БД, а далее в Экспорт.

    Если вы по каким-то причинам хотите сделать бэкап базы данных MySQL из командной строки в Windows, то для этого понадобиться утилита mysqldump.exe, она поставляется вместе с MySQL и расположена в каталоге C:\Server\bin\mysql-8.0\bin\.

    Для её использования откройте командную строку и перетащите туда программу. Программу можно использовать с разнообразными опциями:

    Если вы хотите сделать резервную копию всех баз данных в один файл, то выполните:

    Кстати, файл нужно искать в той папке, которую вы видите в приглашении командной строки.

    Для того, чтобы сделать резервную копию только одной базы данных (например, rsyslog):

    Чтобы сделать резервную копию нескольких баз данных используйте опцию —databases, а после него через пробел перечислите желаемые для бэкапа базы данных:

    Чтобы сделать резервную копию только одной таблицы (wp_posts) из базы данных (wordpress):

    Для того, чтобы сделать резервную копию нескольких таблиц, перечислите их через пробел после названия БД:

    Краткая характеристика основных директив конфигурационных файлов Apache

    Настройка ограничения доступа к папкам сервера

    Настройка SSL для Apache в Windows (переход с HTTP на HTTPS)

    Если вы хотите использовать SSL в веб-сервере Apache под Windows, то вам необходимы три файла: *.key, *.csr и *.crt. Если вы купили валидный SSL сертификат для вашего сайта, то эти файлы вам должны прислать после покупки. Их может быть больше – среди них могут быть промежуточные сертификаты.

    Если вы хотите настроить SSL на локальном веб-сервере, то все эти файлы можно сгенерировать самостоятельно, т.е. создать самоподписанный сертификат. Этот сертификат не является валидным (не может быть проверен с участием третьей стороны), но для упражнения в переходе с HTTP на HTTPS он вполне подойдёт.

    Предполагается, что вы ставили веб-сервер по этой инструкции – иначе замените абсолютные пути на свои собственные.

    Откройте командную строку Windows (WIN + x, далее выберите «Командная строка»). В командной строке введите команды:

    При вводе последней команды появятся запросы на английском языке. Ниже следует их перевод.

    Вас попросят ввести информацию, которая будет включена в запрос вашего сертификата. То, что вы будете вводить, называется Distinguished Name или DN. Там всего несколько полей, которые можно оставить пустыми. В некоторых полях будут значения по умолчанию. Если вы введёте ‘.’, то поле будет оставлено пустым.

    Двухбуквенное имя страны (двухбуквенный код)

    Название штата или провинции/области (полное имя)

    Название населённого пункта (например, города)

    Название организации (т.е. компании).

    Подразделение организации (т.е. отдел)

    Общее имя (например, FQDN сервера или ВАШЕ имя). Можете ввести localhost.

    Пожалуйста, введите следующие «дополнительные» атрибуты для отправки с вашим запросом сертификата

    • Пароль запроса:
    • Опциональное имя компании:

    Теперь выполните команду:

    В результате в каталоге C:\Server\bin\Apache24\bin\ должны появиться три новых файла:

    Из них нам понадобятся только два:

    При использовании сертификатов для настройки реального веб-сайта, удобнее создать виртуальный хост с примерно следующими настройками:

    Для настройки использования SSL на локальном веб-сервере Apache в Windows следуйте инструкции ниже.

    В каталоге C:\Server\ создайте новую папку certs и переместите туда файлы localhost.key и localhost.crt.

    В директории C:\Server\bin\Apache24\conf\ откройте текстовым редактором файл httpd.conf. В самый низ добавьте туда строки:

    Обратите внимание, что вам может понадобиться отредактировать следующие директивы

    • DocumentRoot — укажите путь до сайтов на сервере
    • ServerName — укажите имя вашего хоста, если то не локалхост

    Обратите внимание, что мы не просто поместили эти строки в конфигурационный файл, а заключили их в контейнер VirtualHost. Дело в том, что если этого не сделать, то директива SSLEngine on включит SSL для всего веб-сервера, и даже при попытке открыть сайты на 80 порту, эти подключения будут обрабатываться как HTTPS, что вызовет ошибку «Bad Request. Your browser sent a request that this server could not understand». По этой причине эти настройки помещены в контейнер виртуального хоста. Обратите внимание, что используется ключевое слово _default_ — то есть сюда будут собираться все запросы на 443 порт если они не предназначены для другого хоста, который также настроен. То есть при желании вы можете создать больше виртуальных хостов для работы с HTTPS, при этом вместо _default_ указывайте IP хоста или символ * (звёздочка).

    После этого сохраните изменения, закройте файл и перезапустите веб-сервер.

    Для проверки сделанных изменений, перейдите по адресу https://localhost/ (протокол HTTPS). Поскольку сертификат является самоподписанным, то появится такое сообщение:

    К самоподписанным сертификатам нет доверия и эту ошибку нельзя убрать без добавления таких сертификатов в доверенные. Для перехода нажмите «Всё равно продолжить».

    Настоящие валидные сертификаты для своих сайтов (в том числе бесплатно на любое количество времени), вы сможете получить здесь.

    Как работает веб-сайт #5: Виртуальные хосты Apache

    То, что мы называем «сайт», есть сборник HTML-файлов, хранящихся в одной папке. Каждый файл это отдельная страница сайта, которую мы можем запросить и увидеть в браузере. Например: «главная страница», «новости», «о сайте», «контакты», «регистрация» и т.д.

    Браузер каждый раз посылает запрос веб-серверу: пришли мне страницу index.html , или news.html , или about.html . Но что мешает нам открыть таким же образом любой другой файл на компьютере? Например, сказать веб-серверу, чтобы прислал «C:/Мои Документы/Пароли.doc» . Очевидно, это было бы небезопасно.

    Поэтому у веб-сервера есть ограничение: он может присылать файлы только из той папки, которая задана в качестве корневой для сайта. В нашем случае это папка htdocs , которая находится внутри папки, где был установлен сам сервер. И в ней лежит единственный файл index.html , и мы можем получить только его.

    Можно продолжить добавлять туда файлы и создать целый сайт там, но это будет несколько странно, ведь эта папка предназначена для сервера, а не сайта. К тому же вы можете иметь несколько сайтов, и у каждого сайта будет своя папка. Поэтому подготовимся так:

    Создайте где-нибудь папку исключительно для сайтов. На Linux это обычно /var/www , ну а мы можем сделать такую:

    Далее, мы хотим сделать новый сайт, допустим, test . Для него внутри папки www создаём папку test :

    Но сайт содержит не только HTML-документы. Он будет содержать конфигурационные файлы и другие вещи, которые не предназначены для просмотра. Поэтому для документов, которые МОЖНО просматривать, мы делаем ещё одну папку. Её обычно называют web или htdocs или public_html , называйте как хотите. Меня устроит public_html , потому что так она часто называется на хостингах:

    Читайте также:  Отключение аппаратной виртуализации windows
  • Оцените статью