11 сентября 2016 г.

Настройка VirtualHost в OS Windows



Создаем папку websites на диске C:\
В ней папку нашего локального сервера test.loc
В ней создаем еще 3 папки

c:\websites\test.loc\
    log            //тут будут храниться наши логи
    conf          //тут будет храниться наш файл конфигурации
    www        //тут будут храниться файлы нашего сайта



Далее правка файла hosts
Сам файл должен находится в папке "C:\windows\system32\drivers\etc\"
В любом месте пишем
127.0.0.1        test.loc    www.test.loc

Далее создаем в c:\websites\test.loc\conf
наш файл конфигурации test.loc.conf
В нем пишем

<VirtualHost *:80>
#Основное название сайта
ServerName test.loc

#Дополнительные названия сайта
#*.test.loc - доступны все поддомены для test.loc
ServerAlias *.test.loc

DocumentRoot "c:/websites/test.loc/www"
ServerAdmin webmaster@test.loc

#Пути к логам сайта
ErrorLog "c:/websites/test.loc/log/error.log"
CustomLog "c:/websites/test.loc/log/access.log" combined

# Настройки директории сайта
<Directory "c:/websites/test.loc">

Options Indexes FollowSymLinks  
//Если напишем -Indexes, то запретим просмотр каталога, если файла index.php или index.html не будет.
AllowOverride All  //All - разрешает файл .htaccess, его можно создать в корне test.loc
Order allow,deny
Allow from all
</Directory>

</VirtualHost>
   
В папке c:\websites\test.loc\www
создаем наш тестовый файл index.php.
Внутри его пишем  <?php echo phpinfo(); ?>

Теперь открываем c:/Apache/conf/httpd.conf"
В файле httpd.conf пишем, можно в самом конце добавить

#Подключение виртуальных хостов
NameVirtualHost *:80

#Загрузка настроечных файлов для каждого сайта
Include "c:/websites/test.loc/conf/test.loc.conf"

Ищем также эту директиву и добавляем
<IfModule dir_module>
DirectoryIndex index.php index.html  //Apache будет искать index.php, если его нет, то index.html
</IfModule>

Сохраняем все и перезапускаем Apache
Открываем браузер и пишем test.loc

Если все настроено правильно, то Apache не выдаст ошибок и откроется страница с описанием PHP и его модулей.

Таким способом, вы можете создать сколько угодно сайтов.

!!!Тут еще есть один нюанс, теперь если вы в браузере наберете
localhost, то выведется тот локальный сайт, который первый подключен в httpd.conf,
а мы с вами первым подключили test.loc 

Вернуть наш localhost можно следующим образом
Создаем в "c:/Apache/htdocs/conf"
наш файл конфигурации htdocs.conf

В нем пишем
<VirtualHost *:80>ServerName localhost
DocumentRoot "c:/Apache/htdocs"
</VirtualHost>


Либо вот так, чтобы не лазить в с основной httpd.conf файл
<VirtualHost *:80>
ServerName localhost
DocumentRoot "c:/Apache/htdocs"
<Directory "c:/Apache/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Теперь открываем c:/Apache/conf/httpd.conf"
В файле httpd.conf пишем, нужно в самом начале добавить

#Загрузка настроечных файлов для каждого сайта
Include "c:/Apache/htdocs/conf/htdocs.conf"
Include "c:/websites/test.loc/conf/test.loc.conf"

Комментариев нет :

Отправить комментарий

Оставить отзыв