Настройка виртуальных хостов Xampp для Windows

Обновлено: 04.07.2024

Настройка тестового сервера по умолчанию позволяет использовать только один веб-сайт. Когда вам нужно разработать/обслуживать несколько сайтов, вы можете воспользоваться простым подходом и создать каждый новый сайт в подпапке корня сервера (htdocs). Но такой подход предотвращает использование относительных корневых ссылок сайта, которые необходимы, когда сайт использует PHP. (Корневые ссылки сайта всегда начинаются с косой черты, обозначающей корневую папку, за которой следует полный путь к файлу). Создание виртуального хоста для каждого сайта — гораздо лучший подход, хотя для его настройки требуется еще несколько шагов. Помимо использования корневых ссылок сайта, это также обеспечивает уникальный локальный домен для каждого сайта. Если вам интересно, вот как хостинговые компании управляют виртуальным хостингом.

Создание виртуального хоста — это двухэтапный процесс:

  1. Добавьте новую запись в файл hosts вашего компьютера, указывающую локальное доменное имя каждого сайта на вашем локальном компьютере.
  2. Отредактируйте файл конфигурации Apache, чтобы зарегистрировать каждый виртуальный хост на веб-сервере (по одному для каждого сайта, который вы хотите протестировать локально на своем компьютере).

Создание папок виртуального хоста

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

  1. Создайте папку vhosts на системном диске (C:\vhosts) или другом физическом диске вашей системы. (Я использую E:\vhosts, так как никогда не храню свои данные на системном диске.)
    ПРИМЕЧАНИЕ. Хотя можно создать папку vhosts на съемном (флеш-диске) для хранения ваших веб-сайтов, я не рекомендую это по нескольким причинам. Когда буква диска изменится, ваши виртуальные хосты не будут работать. А более низкая скорость съемных дисков может снизить производительность, иногда значительно.
  2. В папке vhosts создайте подпапку для каждого динамического веб-сайта. Для класса IN234 создайте подпапку in234. Это папка, в которую вы позже установите WordPress.

Отредактируйте файл hosts

.

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

Отказ от ответственности: Дворецкий является «Работодателем/Программой равных возможностей», и «Вспомогательные вспомогательные средства и услуги предоставляются по запросу».

Эта работа находится под лицензией Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Общественный колледж дворецкого

Предоставлено

Я уверен, что этот вопрос задают много раз, но я не сталкивался с проблемой. Я использую XAMPP, где настраиваю среду Zend.

а также обновите файл hosts с помощью 127.0.0.1 comm-app.local и попробуйте перезапустить apache, но он показывает ошибку.



16 ответов 16

Шаг 1) C:\WINDOWS\system32\drivers\etc\ Откройте файл hosts:

Шаг 4) Перезапустите XAMPP и запустите его в своем браузере:


Я вижу две ошибки:

Обратите внимание:

Вы всегда можете попробовать выполнить команду:

Это сообщит вам, когда вы получили неправильную конфигурацию, и, возможно, даже подскажет, в чем проблема.

Кроме того, это помогает избежать недоступности в РЕАЛЬНОЙ системе:

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

Вы настроили comm-app.local для перенаправления на 127.0.0.1 в файле hosts? А вы уверены, что ваш путь правильный? Да, и, конечно же, вы должны закрыть контейнер VirtualHost, если вы этого не сделали. (обновил мой пост)

И вы ввели comm-app.local:8081 в браузере? (может забыли порт)? Не забудьте перезапустить apache после изменения конфигурации. Однако, если это все еще не работает, что-то еще не так в вашем конфигурационном файле.

Привет! Стейни. Я испытываю ту же проблему. Есть ли способ избежать ввода номера порта после имени виртуального хоста. Заранее спасибо

Теперь добавьте имя своего виртуального хоста в файл ниже.

Если вы не можете сохранить этот код в хост-файле, щелкните правой кнопкой мыши на блокноте, выберите «Запуск от имени администратора», после чего вы сможете сохранить свой собственный код и перезапустить XAMP


между тегом виртуального хоста.

и отредактируйте файл System32/Drivers/etc/hosts, используя блокнот от имени администратора

добавить конец файла

Сохраните файл конфигурации Apache.

подробную информацию см. здесь


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


Да, это ошибка, но это не помешает запуску службы apache, это просто вызовет предупреждение, и виртуальный хост не будет работать

Это было бы так, например, и не забудьте добавить VirtualHost для самого локального хоста, чтобы иметь возможность одновременно запускать phpmyadmin и другой проект на порту 80, в качестве примера я покажу с магазином. локальный проект:

затем, как указано выше, вы должны добавить: C:\windows\system32\drivers\hosts в конец файла

перезапустите Apache и попробуйте в браузере:

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

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

затем просто используйте порт для вашего VirtualHost следующим образом:

затем перезапустите Apache и попробуйте в браузере

и только проект, для которого вы добавите порт, будет работать на этом порту, например, другие проекты и phpmyadmin будут по-прежнему работать на порту 80

Как разработчик, я хотел бы, чтобы меня называли разработчиком с полным стеком, чья работа не ограничивается только чистым кодом и безошибочной доставкой, но также несет ответственность за обеспечение инфраструктуры, базы данных, серверного кода, интерфейсный код и управление проектами;). Я уверен, что вас не заинтересуют звонки клиентов и ежедневные телефонные звонки, но это часть нашей работы, которая помогает в успешной доставке продукта, а также удовлетворенности клиентов.

Недавно я перешел с Linux на Windows. Вы можете понять боль разработчика, когда дело доходит до смены вашей машины с практической машины на машину с новой средой. Это новый мир с переустановкой поддерживаемых инструментов, драйверов, приложений, которые подходят для вашей машины.

Зачем нам нужно настраивать виртуальный хост?

Настройка виртуального хоста позволяет вам использовать псевдоним для вашего локального хоста. Мы можем настроить несколько виртуальных хостов в соответствии с нашими потребностями, чтобы каждый локальный веб-сайт был доступен по определенному имени. Виртуальный адрес означает IP-адрес, вы можете использовать разные IP-адреса или разные имена для каждого IP-адреса. Другими словами, предположим, что ваш сайт находится в «localhost/site1», и вы хотите загрузить все активы. Всегда возникает проблема, когда мы следуем традиционному шагу, например, создаем папку внутри «..\xampp\htdocs\site1». Это место, где мы размещали наш хостинг-сайт в Windows, и всегда сталкивались с проблемой, когда они хотят получить любой файл, находящийся в этом каталоге. В этом случае URL становится «http://localhost:8012/site1/sites/default/files/image.jpg». Из-за неверного пути файлы становятся недоступными и, как следствие, не загружаются на страницу.

Используя Vhost, вы можете загружать документы из корня документа без перемещения файлов вашего сайта.

Нет ничего плохого в настройке Vhost на локальном компьютере. Используя это, вы также можете настроить несколько сайтов, использующих подстановочные знаки DNS с именем поддомена.

На чем я работаю:
Я использую последнюю версию сервера Xampp с 32-разрядной операционной системой Windows 7. XAMPP с Apache 2.4.25, PHP 7.1.4, MySQL 5.0.12


ServerAdmin webmaster@localhost.com
DocumentRoot "C:/xampp/htdocs"
ServerName localhost

Как видно из приведенного выше кода, я включил DocumentRoot и ServerName в тег виртуального хоста. В отличие от основного тега, доступно множество других тегов. И вы можете использовать их в соответствии с вашими требованиями.


ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
ServerName dummy-host. example.com
Псевдоним сервера www. dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error.log"
CustomLog "logs/dummy-host.example.com-access.log" common

Как видно из приведенного выше кода, у нас есть ServerAdmin, DocumentRoot, ServerName, ServerAlias, ErrorLog, CustomLog.

Администратор сервера:
Описание: Адрес электронной почты, который сервер включает в сообщения об ошибках, отправляемые клиенту
Синтаксис: Адрес электронной почты администратора сервера|URL

ServerAlias:
Описание Альтернативные имена хоста, используемые при сопоставлении запросов с именами виртуальных хостов
Синтаксис: ServerAlias ​​имя хоста [имя хоста] .

ServerName:
Описание: имя хоста и порт, которые сервер использует для идентификации себя
Синтаксис: ServerName [scheme://]domain- имя|ip-адрес[:порт]

Ниже мой машинный код:


ServerAdmin webmaster@xai.com
DocumentRoot "C:/xampp/htdocs/site1"
ServerName site1
ServerAlias ​​site1

Заказать разрешить, запретить
Разрешить от всех

Подобным образом вы можете добавить множество виртуальных хостов для своего локального веб-каталога.В моем случае номер порта – 8012. Внесите соответствующие изменения.


ServerAdmin webmaster@site1.com
DocumentRoot "C:/xampp/htdocs/site1"
ServerName site1
ServerAlias ​​site1


ServerAdmin webmaster@site2.com
DocumentRoot "C:/xampp/htdocs/site2"
ServerName site2
ServerAlias ​​site2


ServerAdmin webmaster@site3.com
DocumentRoot "C:/xampp/htdocs/site3"
ServerName site3
ServerAlias ​​site3

127.0.0.1 localhost
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local

…… …………….

Это руководство поможет вам настроить виртуальный хост для вашего проекта PHP. Я разделил это руководство на две части — начиная с быстрого прохождения, от начала до конца в несколько шагов. Во второй части я подробно расскажу о каждом шаге руководства, чтобы убедиться, что вы понимаете все, что сделали. У меня нет иллюзий, что большинство из вас прочитает вторую часть.

Я объясняю концепции с точки зрения пользователя Windows (пути, имена файлов). Если вам посчастливилось быть пользователем Unix/Linux, я уверен, что вы знаете, где у вас есть нужные материалы, и сможете следить за ними.

Зачем создавать виртуальные хосты?

Быстрая пошаговая настройка виртуального хоста в xampp

Убедитесь, что знаете:

  1. Путь к вашему проекту PHP, например: c:\users\username\source\mysite
  2. Путь к вашей установке xampp/lampp, например: c:\xampp

Вы только что настроили локальный сервер для поиска сценариев для выполнения в любом выбранном вами каталоге всякий раз, когда он получает запрос на поиск yourdomain.localhost (или того, что вы решили использовать).

Не забудьте ПЕРЕЗАПУСТИТЬ СЕРВЕР APACHE после сохранения файла.

Последний шаг – указать вашему компьютеру направлять все запросы yourdomain.localhost на localhost (ваш компьютер):

  1. Откройте папку c:\windows\system32\drivers\etc и найдите файл hosts.
  2. Откройте файл hosts в текстовом редакторе по вашему выбору, который может сохранять файлы от имени администратора (Visual Studio Code может повышать права до администратора удобным для пользователя способом при сохранении)
  3. Добавьте строку 127.0.0.1 yourdomain.localhost в самый конец.
  4. Сохранить.

Когда вы сейчас получите доступ к yourdomain.localhost в браузере, вы увидите свой проект. Если нет, то ваша установка не работает и/или вы не знаете, что делаете. Пожалуйста, перейдите ко второй части этого руководства, где я объясню концепции более подробно.

Пошаговое описание того, что происходит на самом деле

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

Как это все работает?

Мое основное предположение заключается в том, что вы установили XAMPP или аналогичный пакет на свое устройство. Вы сделали это, потому что хотите разработать приложение на PHP или другом поддерживаемом языке.

Пакет XAMPP поставляется с сервером apache, который знает, как обрабатывать веб-запросы, интерпретировать PHP-скрипты (если он установлен) и предоставлять контент обратно пользователю, отправляющему веб-запросы. Одна из вещей, которую сервер apache делает при обработке запроса пользователя, — это проверка того, для какого домена был отправлен запрос. Помните об этом. Не имеет значения, действительно ли доменное имя или существует ли оно.

Когда веб-сервер apache работает на компьютере, к нему можно получить доступ по адресу 127.0.0.1 или его локальному псевдониму в браузере. В качестве альтернативы, если вы подключены к Интернету и вашему компьютеру назначен общедоступный IP-адрес, другие люди также могут отправлять запросы на ваш веб-сервер Apache — они будут использовать ваш общедоступный IP-адрес вместо localhost / 127.0.0.1. .

Эти порты можно изменить, но этот процесс выходит за рамки данного руководства. Этот пост о переполнении стека отлично объясняет, как это сделать.

Подводя итог: если вы следовали этому руководству, вы достигли двух целей:

Давайте посмотрим на фрагмент кода, который добавляется к файлу:

Что касается фактической используемой директивы — Требовать все предоставленные — это говорит серверу Apache, что он не должен отказывать в обслуживании этих страниц любому IP-адресу, запрашивающему их.

В большинстве случаев вы будете в локальной сети без общедоступного IP-адреса. Таким образом, использование этой широкой директивы приводит к тому, что любой пользователь в той же локальной сети может запрашивать страницы с вашего веб-сервера. Если у вас есть общедоступный IP-адрес, то любой в Интернете сможет это сделать. Если вас это беспокоит, прочтите документацию Apache и найдите директиву Require ip [IP].

Имя сервера yourdomain.localhost говорит само за себя. Запросы для данного домена будут направляться в папку, указанную в DocumentRoot .

Почему следует использовать домен верхнего уровня .localhost?

Короткий ответ: потому что вам не следует использовать существующий TLD.

Подробный ответ: вы не можете контролировать, какие TLD будут создаваться в будущем, но вы можете обратиться к RFC2606, стр. 2, где перечислены домены, которые вы можете использовать для частного тестирования. Это .test , .example , .invalid и .localhost .

Как работает обновление файла hosts?

Во второй части настройки локального домена мы редактируем файл hosts и добавляем в его конец строку 127.0.0.1 yourdomain.localhost. Эта строка сопоставляет, как воспринимается вашим компьютером, домен yourdomain.localhost с ip-адресом 127.0.0.1 (ip-адрес вашего компьютера; локальный хост). Вместо этого вы можете указать любой домен и любой IP-адрес, и все будет работать так же.

Файл hosts — это локальная подсказка для операционной системы, которая используется с более высоким приоритетом. Если доменное имя найдено в файле hosts, система не будет пытаться получить информацию о целевом IP-адресе с DNS-сервера, а будет использовать указанный.

Читайте также: