Гибкая настройка виртуальных хостов в WAMP
Что такое WAMP?#
WAMP — очень удобная среда разработки под Windows. После его установки в вашем распоряжении будет связка Apache2 + PHP + MySQL с PHPMyAdmin. Что действительно очень удобно, так это наличие аддонов. Аддоны в WAMP дают возможность иметь на локальной машине сразу несколько версий вышеперечисленного одновременно и очень легко переключаться между ними. Думаю, такого вступления будет достаточно, чтоб определиться, нужно ли вообще читать дальше, а более подробную информацию можно найти на официальном сайте WAMP, ну и "поиск рулит".
Предмет сегодняшнего обсуждения возник в связи с тем, что WAMP не создает виртуальных хостов по умолчанию, хотя возможность такая в природе существует. После создания в дирректории www (корень локального сервера), например, папки test, вы сможете обращаться к нему по адресу http://localhost/test, но не http://test. В большинстве случаев, виртуальные хосты не нужны, но бывают и исключения. К тому же, мне так больше нравится. В дальнейшем, давайте условимся, что WAMP установлен в папку C:\wamp.
Как включить виртуальные хосты в WAMP#
Функционал виртуальных хостов не включен изначально. Для этого нужно открыть файл httpd.conf
, который находится в
папке conf
активной версии сервера Apache. Например, для 2.4.4 — это
C:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf
. Это обычный текстовый файл и открывается он соответственно. Далее
ищем там фрагмент "Virtual hosts" и убираем знак комментария (#) в строке сразу после него, после нужно сохранить файл
и перезапустить сервер. Должно получиться вот так:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
Как создать виртуальный хост в WAMP#
Для тех, кто не совсем понял, что произошло с изменениями в файле httpd.conf
, поясню — мы
указали, что при загрузке сервера нужно загружать еще один конфигурационный файл httpd-vhosts.conf
, в котором как раз
и хранится информация о виртуальных хостах.
Для того, чтобы создать виртуальный хост на локальном сервере, нужно сделать следующее:
- Создать папку с именем хоста в C:\wamp\www, например, C:\wamp\www\sample.
- Добавить его адрес в системный файл
hosts
:127.0.0.1 sample
Для Windows 7, его расположение Windows\System32\drivers\etc\hosts. Это обычный тестовый файл и его можно править в "Блокноте".
Не забывайте, что для внесения любых изменений в hosts нужно запустить программу для редактирования с правами администратора, а также разрешить изменения в программах защиты. Например, антивирус Avira не дает вносить правки, пока активен Real-Time Protection.
- Добавить хост в файл
httpd-vhosts.conf
:<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName sample DocumentRoot "c:/wamp/www/sample" ErrorLog "logs/sample-error.log" CustomLog "logs/sample-access.log" common </VirtualHost>
- Сохраните все вышеупомянутые файлы и перезапустите сервер. Теперь http://sample станет доступен.
Имейте ввиду, что некоторые браузеры могут перенаправить вас на сайт-поисковик по умолчанию, если при первом обращении к виртуальному хосту явно не указать протокол — http://
Как настроить виртуальные хосты в WAMP так, чтобы был доступен и localhost#
Вот здесь и начнутся проблемы, которые подтолкнули меня написать эту статью. Стал недоступен
http://localhost, где находится много полезной информации, да и не для всех сайтов нужны виртуальные
хосты, а запоминать их адреса и вводить постоянно вручную, откровенно, лень. Как бы забавно это не звучало, но вопрос
решается добавлением еще одного виртуального хоста http://localhost. Пройдите все шаги создания
виртуального хоста, но вместо sample
используйте localhost
, а в файл httpd-vhosts.conf
нужно добавить следующее:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "c:/wamp/www"
ServerName localhost
ErrorLog "logs/localhost-error.log"
CustomLog "logs/localhost-access.log" common
</VirtualHost>
Вот теперь порядок! Можно пользоваться как виртуальными хостами, так и функционалом "домашней страницы" WAMP одновременно.